[ Foro de C ]

Calculadora en C

12-Nov-2020 05:31
Esteban xd
0 Respuestas

Necesito ayuda, lo que pasa es que en mi codigo al pedirle al usuario que ingrese una opcion del meno al ingresar una opcion que no esta en el menu sesupone que imprime opcion no valida y lo devuelve al menu, eso hace la primera vez lo hace correctamente pero al volver a ingresar por segunda vez seguida una opcion que no se encuentre en el menu no muestra la impresion y no devuelve el menu, sino que termina el programa, que puedo hacer o modificarle?

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

int opc;

void suma(int a, int b)
{ float s;
s=a+b;
printf("\n\tResultado de la suma es: %.2f\n\t",s);
}

void resta(float a, float b)
{ float r;
r=a-b;
printf("\n\tResultado de la resta es: %.2f\n\t",r); }

void multiplicacion(float a, float b)
{ float m;
m=a*b;
printf("\n\tResultado de la multiplicacion es: %.2f\n\t",m); }

void division(float a, float b)
{ float d;
d=a/b;
printf("\n\tResultado de la division es: %.2f\n\t",d); }

int menu()
{
printf("\n\tMENU DE OPCIONES\n");
printf("\t1.Suma\n");
printf("\t2.Resta\n");
printf("\t3.Multipicacion\n");
printf("\t4.Division\n");
printf("\t5.Salir\n");
printf("\tIntroduce un numero de opcion: ");
scanf("%d",&opc);
fflush(stdin);
return(opc);
}

int main(int argc, char *argv[])
{
float var1,var2;
menu();
do {
   switch(opc){
       case 1: printf("\n\tIntroduce dos valores:\n\t");
               scanf("%f",&var1);
               printf("\t");
               scanf("%f",&var2);
               suma(var1,var2);
               system("PAUSE");
               system("cls");
               menu();
           break;
       case 2: printf("\n\tIntroduce dos valores:\n\t");
               scanf("%f",&var1);
               printf("\t");
               scanf("%f",&var2);
               resta(var1,var2);
               system("PAUSE");
               system("cls");
               menu();
           break;
       case 3: printf("\n\tIntroduce dos valores:\n\t");
               scanf("%f",&var1);
               printf("\t");
               scanf("%f",&var2);
               multiplicacion(var1,var2);
               system("PAUSE");
               system("cls");
               menu();
           break;
       case 4: printf("\n\tIntroduce dos valores:\n\t");
               scanf("%f",&var1);
               printf("\t");
               scanf("%f",&var2);
               division(var1,var2);
               system("PAUSE");
               system("cls");
               menu();
           break;
       case 5: printf("\n\tTen un buen dia\n\t");
           break;
       default: printf("\n\tOpcion no valida\n\t");
               system("PAUSE");
               system("cls");
               menu();
           break;
               }
}while (opc>=1 && opc<=4);
system("PAUSE");
return 0;
}




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)