Há como diminuir, ou até mesmo melhorar esse código?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main() {
float n1=0.0; float n2=0.0; float n3=0.0; float delta=0.0; int op=0; char escolha=0; char escolhab=0;
printf("Calculadora\n");
printf("Voce pode utilizar numeros de ponto flutuante e numeros negativos\n\n");
do{
printf("1 Adicao\n");
printf("2 Subtracao\n");
printf("3 Multiplicacao\n");
printf("4 Divisao\n");
printf("5 Raiz Quadrada\n");
printf("6 Polinomio de grau 2\n");
printf("7 Sair\n\n");
printf("\nDigite sua opcao:\t");
scanf("%d",&op);
switch(op){
case 1:
printf("\nAdicao\n");
do{printf("\nDigite o 1o numero:\t");
fflush(stdin);
scanf("%f",&n1);
printf("Digite o 2o numero:\t");
fflush(stdin);
scanf("%f",&n2);
printf("\nR: %f\n\n",n1+n2);
printf("Deseja fazer outra adicao? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
break;
case 2:
printf("\nSubtracao\n");
do{printf("\nDigite o 1o numero:\t");
fflush(stdin);
scanf("%f",&n1);
printf("Digite o 2o numero:\t");
fflush(stdin);
scanf("%f",&n2);
printf("\nR: %f\n\n",n1-n2);
printf("Deseja fazer outra subtracao? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
break;
case 3:
printf("\nMultiplicacao\n");
do{printf("\nDigite o 1o numero:\t");
fflush(stdin);
scanf("%f",&n1);
printf("Digite o 2o numero:\t");
fflush(stdin);
scanf("%f",&n2);
printf("\nR: %f\n\n",n1*n2);
printf("Deseja fazer outra multiplicacao? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
break;
case 4:
printf("\nDivisao\n");
do{
do{printf("\nDigite o 1o numero:\t");
fflush(stdin);
scanf("%f",&n1);
printf("Digite o 2o numero:\t");
fflush(stdin);
scanf("%f",&n2);
if (n2==0)
printf("\nO divisor não pode ser zero! Repita a operacao!\n\n");
else printf("\nR: %f\n\n",n1/n2);}while(n2==0);
printf("Deseja fazer outra divisao? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
break;
case 5:
printf("\nRaiz Quadrada\n");
do{
do{printf("\nDigite o numero:\t");
fflush(stdin);
scanf("%f",&n1);
if (n1<0)
printf("\nNao existe nos reais raiz quadrada de numero negativo!\nRepita a operacao!\n\n");
else printf("\nR: %f\n\n",sqrt(n1));}while(n1<0);
printf("Deseja calcular a raiz de outro numero? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
break;
case 6:
printf("\nPolinomio do Segundo Grau\n");
do{
do{printf("\nDigite o coeficiente 'a':\t");
fflush(stdin);
scanf("%f",&n1);
if (n1==0)
printf("\nO coeficiente 'a' deve ser diferente de zero!\nRepita a operacao!\n\n");}while(n1==0);
printf("Digite o coeficiente 'b':\t");
fflush(stdin);
scanf("%f",&n2);
printf("Digite o coeficiente 'c':\t");
fflush(stdin);
scanf("%f",&n3);
delta = (n2*n2 - 4*n1*n3);
if (delta < 0)
printf("\nNao há raizes reais\n\n");
else if (delta == 0)
printf ("\nSo há uma raiz x:\t%f\n\n", n2/2*n1);
else {
printf ("\nX1 =\t%f\n",(n2 + sqrt(delta))/2*n1);
printf ("X2 =\t%f\n\n",(n2 - sqrt(delta))/2*n1);}
printf("Deseja calcular outro polinomio de segundo grau? [S/N]\t");
fflush(stdin);
scanf("%c",&escolhab);}while((escolhab=='s')||(escolhab=='S'));
case 7:
printf("\n\nSilas Yudi\nCiencias da Computacao - UFPB\n\n\n");
system("PAUSE");
return 0;
default:
printf("\nOperacao ilegal\n");
}
printf("\nDeseja continuar usando a calculadora? [S/N]\t");
fflush(stdin);
scanf("%c",&escolha);
printf("\n\n\n");
}while((escolha == 's')||(escolha == 'S'));
printf("\nSilas Yudi\nCiencias da Computacao - UFPB\n\n");
system("PAUSE");
return 0;
}
Pergunta
silas_
Há como diminuir, ou até mesmo melhorar esse código?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.