Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com meus codigos...


Ervilha

Pergunta

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);
         }
}

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

E aí Ervilha, tranquilo? cara, peguei seu código de transformar o número decimal pra romano e mudei pequenas coisas aki e funcionou perfeitamente, e coloquei a saída em C. Vou postar o código e você vê se é isso que você queria. Agora vou dar uma olhada no primeiro código, o de ver quantos dígitos o número tem. É isso aí, falou T+ . . . Onde eu mexi coloquei em Negrito pra você comparar com o seu código. Abraços!

#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.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;
char 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++;
}
}
printf("%c", romano);
}
else
{
printf("Eu mandei escrever de 1 a 3999 cegueta!");
return(0);
}
}[/CODEBOX]

Editado por Risadão
Link para o comentário
Compartilhar em outros sites

  • 0
E aí Ervilha, tranquilo? cara, peguei seu código de transformar o número decimal pra romano e mudei pequenas coisas aki e funcionou perfeitamente, e coloquei a saída em C. Vou postar o código e você vê se é isso que você queria. Agora vou dar uma olhada no primeiro código, o de ver quantos dígitos o número tem. É isso aí, falou T+ . . . Onde eu mexi coloquei em Negrito pra você comparar com o seu código. Abraços!

#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<ctype.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;
char 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++;
}
}
printf("%c", romano);
}
else
{
printf("Eu mandei escrever de 1 a 3999 cegueta!");
return(0);
}
}[/CODEBOX]

Vlw, mas não consigo executar ele, ele retorna apenas caracteres estranhos, que compilador você usa? estou usando o borland turbo c++ 5.02.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...