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