Jump to content
Sign in to follow this  
Heitor Nery

Estou com problema nesse código, quando faço a conversão de decimal para binario.

Recommended Posts

#include <stdio.h>
#include <stdlib.h>

int main (void)
{
    int menu1=0, menu2, menu3, menu4, tiponum1, tiponum2, num1, num2, soma, mult, div, sub;
    printf("\tCALCULADORA DE BASES NUMERICAS\n\n\n");
    while(menu1==0)
    {
                   printf("Qual operacao deseja realizar?\n");
                   printf("1 - Conversao\n2 - Soma\n3 - Divisao\n4 - Subtracao\n5 - Multiplicacao\nResposta: ");
                   scanf("%i", &menu2);
                   while(menu2==1)
                   {
                                  printf("Seu primeiro numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum1);
                                  if(tiponum1==1){
                                                     printf("Digite o numero: \n");
                                                     scanf("%x",&num1);
                                                     }
                                  if(tiponum1==2){
                                                     printf("Digite o numero: \n");
                                                     scanf("%o",&num1);
                                                     }
                                  if(tiponum1==3){
                                                     printf("Digite o numero: \n");
                                                     scanf("%i",&num1);
                                                     }
                                  if(tiponum1==4){
                                                     printf("Digite o numero: \n");
                                                     scanf("%i",&num1);
                                                     }
                                  printf("Deseja converter para qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum2);
                                  if(tiponum2==1){
                                                     printf("O valor em Hexadecimal e: %x\n", num1);
                                                     }
                                  if(tiponum2==2){
                                                     printf("O valor em Octal e: %o\n", num1);
                                                     }
                                  if(tiponum2==3){
                                                     printf("O valor em Decimal e: %i\n", num1);
                                                     }
                                  if(tiponum2==4){
                                                     printf("O valor em Binario e: %s\n");
                                                     }
                                  menu1=0;
                                  menu2=0;
                   }
                   while(menu2==2)
                   {
                                  printf("Seu primeiro numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum1);
                                  if(tiponum1==1){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%x",&num1);
                                                     }
                                  if(tiponum1==2){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%o",&num1);
                                                     }
                                  if(tiponum1==3){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  if(tiponum1==4){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  printf("Seu segundo numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum2);
                                  if(tiponum2==1){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%x",&num2);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%o",&num2);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }     
                                  soma=num1+num2;
                                  printf("Deseja exibir o resultado em que base?\n1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta: \n");
                                  scanf("%i", &tiponum2); 
                                  if(tiponum2==1){
                                                     printf("Valor da soma e: %x\n", soma);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Valor da soma e: %o\n", soma);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Valor da soma e: %i\n", soma);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Digite o segundo numero: \n");
                                                     }
                                  menu1=0;
                                  menu2=0;                        
                   }
                   while(menu2==3)
                   {
                                  printf("Seu primeiro numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum1);
                                  if(tiponum1==1){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%x",&num1);
                                                     }
                                  if(tiponum1==2){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%o",&num1);
                                                     }
                                  if(tiponum1==3){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  if(tiponum1==4){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  printf("Seu segundo numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum2);
                                  if(tiponum2==1){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%x",&num2);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%o",&num2);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }     
                                  div=num1/num2;
                                  printf("Deseja exibir o resultado em que base?\n1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta: \n");
                                  scanf("%i", &tiponum2); 
                                  if(tiponum2==1){
                                                     printf("Valor da divisao e: %x\n", div);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Valor da divisao e: %o\n", div);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Valor da divisao e: %i\n", div);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Valor da divisao e: \n");
                                                     }
                                  menu1=0;
                                  menu2=0;                        
                   }
                   while(menu2==4)
                   {
                                  printf("Seu primeiro numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum1);
                                  if(tiponum1==1){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%x",&num1);
                                                     }
                                  if(tiponum1==2){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%o",&num1);
                                                     }
                                  if(tiponum1==3){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  if(tiponum1==4){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  printf("Seu segundo numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum2);
                                  if(tiponum2==1){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%x",&num2);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%o",&num2);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }     
                                  sub=num1-num2;
                                  printf("Deseja exibir o resultado em que base?\n1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta: \n");
                                  scanf("%i", &tiponum2); 
                                  if(tiponum2==1){
                                                     printf("Valor da subtracao e: %x\n", sub);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Valor da subtracao e: %o\n", sub);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Valor da subtracao e: %i\n", sub);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Valor da subtracao e: \n");
                                                     
                                                     }
                                  menu1=0;
                                  menu2=0;                        
                   }
                   while(menu2==5)
                   {
                                  printf("Seu primeiro numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum1);
                                  if(tiponum1==1){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%x",&num1);
                                                     }
                                  if(tiponum1==2){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%o",&num1);
                                                     }
                                  if(tiponum1==3){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  if(tiponum1==4){
                                                     printf("Digite o primeiro numero: ");
                                                     scanf("%i",&num1);
                                                     }
                                  printf("Seu segundo numero esta em qual base?\n");
                                  printf("1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta\n");
                                  scanf("%i", &tiponum2);
                                  if(tiponum2==1){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%x",&num2);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%o",&num2);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Digite o segundo numero: ");
                                                     scanf("%i",&num2);
                                                     }     
                                  mult=num1*num2;
                                  printf("Deseja exibir o resultado em que base?\n1 - Hexadecimal\n2 - Octal\n3 - Decimal\n4 - Binario\nResposta: \n");
                                  scanf("%i", &tiponum2); 
                                  if(tiponum2==1){
                                                     printf("Valor da multiplicacao e: %x\n", mult);
                                                     }
                                  if(tiponum2==2){
                                                     printf("Valor da multiplicacao e: %o\n", mult);
                                                     }
                                  if(tiponum2==3){
                                                     printf("Valor da multiplicacao e: %i\n", mult);
                                                     }
                                  if(tiponum2==4){
                                                     printf("Valor da multiplicacao e: \n");
                                                     }
                                  menu1=0;
                                  menu2=0;                        
                   }
          }
}                                                     
    
 

Share this post


Link to post
Share on other sites

Em primeiro lugar, recomendo que aprenda a modularizar seu código; em segundo, a comentá-lo e; em terceiro, a evitar fazer as mesmas coisas mais de uma vez... Eis um esqueleto do que seu código poderia ser (incompleto - porque não vou fazer seu dever de casa!):
 

#include <stdio.h>

/* Por conveniência, essa enumeração será usada para selecionar a operação */
enum operacao_e {
  CONVERT = 1,
  SUM,
  SUBTRACT,
  DIVIDE,
  MULTIPLY
};

static int get_choice( char ** );
static void convert( void );
static void sum( void );
static void subtract( void );
static void divide( void );
static void multiply( void );

int main( void )
{
  static char *operacoes[] =
  {
    "Conversão",
    "Soma",
    "Divisao",
    "Subtração",
    "Multiplicação",
    NULL
  };

  int operacao;

  puts( "CALCULADORA DE BASES NUMERICAS\n"
        "Digite Ctrl+C para sair do programa." );

  while ( 1 )
  {
    operacao = get_choice( operacoes );

    switch ( operacao )
    {
      case CONVERT:
        convert();
        break;

      case SUM:
        sum();
        break;

      case SUBTRACT:
        subtract();
        break;

      case DIVIDE:
        divide();
        break;

      case MULTIPLY:
        multiply();
        break;

      default:
        fputs( "***ERRO***: Opção inválida.\n", stderr );
    }
  }

  /* Nunca vai chegar aqui! */
}

/* Mostra a lista de opções e permite a seleção de uma.
   Retorna 0 se houve algum erro. */
int get_choice( char **choicesp )
{
  int numchoices, i;

  numchoices = 0;
  puts( "" );
  while ( *choicesp )
    printf( "%d - %s\n", 1 + numchoices++, *choicesp++ );
  fputs( "Resposta: ", stdout );
  fflush( stdout );

  i = 0;

  if ( scanf( "%d", &i ) != 1 )
    return 0;

  if ( i < 1 || i > numchoices )
    return 0;

  return i;
}

/* Aqui você deverá colocar código similar, em cada uma das funções */
void convert( void ) {}
void sum( void ) {}
void subtract( void ) {}
void divide( void ) {}
void multiply( void ) {}

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...