Ajuda apenas correção...

13/11/2008

1

Fiz esse programa em ´C´, você entra com um numero qualquer e ele te retorna quantos digitos tem esse numero.
Com int ele funciona bem, mas quero passar ele para double e não estou conseguindo fazer.

Segue o codigo fonte...

#include<conio.h>
include<stdio.h>
include<stdlib.h>
include<ctype.h>
include<string.h>

void main(void)
{
int c, n;
char resposta = ´s´;

  do
  {
   textbackground(1);
   textcolor(14);
   cprintf("\r\n\n");
   printf("          ");cprintf("****************************************************\r\n");
    printf("          ");cprintf("*   Infomar a quantidade de digitos de um numero:  *\r\n");
    printf("          ");cprintf("****************************************************\r\n");


   printf("\n Digite um numero: ");
    scanf("¬i", &n);

    for(c = 0; n; n /= 10)
     c++;

    printf("\n ----> O numero possui ¬i digitos.", c);

   textbackground(0);
   printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
   cprintf(" Deseja Continuar S/N?: ");
    scanf( "\n ¬c", &resposta );
    clrscr();
  }while(toupper(resposta) == ´S´);
}



Segunda duvida, fiz um programa que converte decimais para romanos, mas não consigo fazer a saida em C. apenas c++, alguém pode me dar uma luz ae?

#include<iostream.h>
include<cstring.h>
include<conio.h>
include<stdio.h>
include<stdlib.h>
include<ctype.h>
include<string.h>

int dec_romana (int num);

int main(int argc, char *argv[])
{
   int numerito;

       printf("\n Entre com um numero de 1 a 3999: ");
        scanf("¬i", &numerito);

        dec_romana(numerito);
        getch();
        return (0);
}

int dec_romana (int num)
{

int numeros[8] = {1,5,10,50,100,500,1000,5000},i,p;
string letras[8] = {"I","V","X","L","C","D","M"},romano;

     if(num<=0)
         {
              printf("\n Sou bom, Mas não sou magico.");
           return(0);
         }
     else if(num<=3999)
         {
             while(num > 0)
                 {
                      i = 0;
                      while(i < 7)
                          {
                              while(num >= numeros[i] && num < numeros[i+1])
                                  {
                                       p = i¬2;
                                       if(num >= numeros[i+1] - numeros[i-p])
                                           {
                                                 romano = romano + letras[i-p] + letras[i+1];
                                                 num = num-(numeros[i+1]-numeros[i-p]);
                                           }
                                       else
                                           {
                                                 romano = romano + letras[i];
                                                 num = num-numeros[i];
                                           }
                                  }
                              i++;
                          }
                 }
                 cout << romano << endl; //QUERO ARRUMAR ISSO AQUI
         }
     else
         {
             printf("Eu mandei escrever de 1 a 3999 cegueta!");
          return(0);
         }
}



Responder