Heitor Nery Posted October 25, 2019 at 07:28 PM Share Posted October 25, 2019 at 07:28 PM #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; } } } Link to comment Share on other sites More sharing options...
fredericopissarra Posted October 25, 2019 at 11:04 PM Share Posted October 25, 2019 at 11:04 PM 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 ) {} Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.