Hola, El error de tu programa es este:
respuesta = 1
Ingresas al do while dentro del do te pide la opcion, usuario ingresa 1,2,3 o 4
Te manda al switch si coloco 1 por ej, te manda a la suma
while(respuesta == 1) te entra a la suma, te suma los valores te pide si deseas continuar
(Y aca esta el error) Si colocas que No (respuesta = 2), y entra al while(opcion!=5) por lo tanto repite el do while y si colocas opcion 1 otra vez, no podrás sumar ya que respuesta ya no es 1 es 2. Solo podras colocar 5 para salir. Para arreglar todo esto: arribita del
}
while(opcion!=5)
debes colocar un if (respuesta == 2) return 0; para cerrar el programa de main()
En resumen así te queda el código:
Código C++:
Ver original#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
int opcion=0,respuesta=1;
float numero1,numero2,suma,resta,multiplicacion,division ;
do
{
printf("%cQue desea realizar?",168); printf("\n\n\t3.MULTIPLICACION"); printf("\n\n\nIngresa la opcion: "); switch(opcion)
{
case 1:
{
while (respuesta==1)
{
printf("\nAQUI SE REALIZA LA SUMA"); printf("\n\n-> Ingresa el primer digito que desea sumar: \t"); printf("\n-> Ingresa el segundo digito que desea sumar: \t"); suma=numero1+numero2;
printf("\n\n* El resultado de la suma de: \t%.1f + %.1f = %.1f",numero1
,numero2
,suma
); printf("\n\n*%cDesea realizar otra suma? 1) Si 2) No \n\n",168); }
break;
}
case 2:
{
while (respuesta==1)
{
printf("\nAQUI SE REALIZA LA RESTA"); printf("\n\n-> Ingresa el primer digito que desea restar: \t"); printf("\n-> Ingresa el segundo digito que desea restar: \t"); resta=numero1-numero2;
printf("\n\n* El resultado de la resta de: \t%.1f - %.1f = %.1f",numero1
,numero2
,resta
); printf("\n\n*%cDesea realizar otra resta? 1)SI 2)NO\n\n",168); }
break;
}
case 3:
{
while (respuesta==1)
{
printf("\nAQUI SE REALIZA LA MULTIPLICACION"); printf("\n\n-> Ingresa el primer digito que desea multiplicar: \t"); printf("\n-> Ingresa el segundo digito que desea multiplicar: \t"); multiplicacion=numero1*numero2;
printf("\n\n* El resultado de la multiplicacion de: \t%.1f * %.1f = %.1f",numero1
,numero2
,multiplicacion
); printf("\n\n*%cDesea realizar otra multiplicacion? 1)SI 2)NO\n\n",168); }
break;
}
case 4:
{
while (respuesta==1)
{
printf("\nAQUI SE REALIZA LA DIVISION"); printf("\n\n-> Ingresa el primer digito que desea dividir: \t\t"); printf("\n-> Ingresa el segundo digito que desea dividir: \t"); if (numero2==0 || numero1==0 && numero2==0)
printf("\n\n* El resultado de la division de: \t%.1f %c %.1f es una 'Indeterminacion'",numero1
,246,numero2
); else
{
division=numero1/numero2;
printf("\n\n* El resultado de la division de: \t%.1f %c %.1f = %.1f",numero1
,246,numero2
,division
); }
printf("\n\n*%cDesea realizar otra division? 1)SI 2)NO\n\n",168); }
break;
}
case 5:
{
printf("\nHasta pronto %c",1); break;
}
default:
printf("\nOpcion no valida. Intente de nuevo \n\n"); }
if (respuesta == 2) return 0;
}
while (opcion !=5);
return 0;
}