Programación General > Visual C++
Calculadora con switch
(1/1)
cazagavilan:
--- Código: C++ ---#include "stdafx.h"#include <iostream>#include <stdio.h>using namespace std; int main() { int dato1; int dato2; int resultado; cout <<"****************************************\n"; cout <<"***** *****\n"; cout <<"**** ****\n"; cout <<"*** ***\n"; cout <<"** **\n"; cout <<"* CALCULADORA *\n"; cout <<"** **\n"; cout <<"*** ***\n"; cout <<"**** ****\n"; cout <<"***** *****\n"; cout <<"****************************************\n"; cout <<"Que desea hacer?\n"; cout <<"[1]-Suma.\n"; cout <<"[2]-Resta.\n"; cout <<"[3]-Multiplicacion.\n"; cout <<"[4]-Division.\n"; cin >> resultado; cout <<"Escriba la primera cifra: "; cin >> dato1; cout <<"Escriba la segunda cifra: "; cin >> dato2; switch(resultado) { case 1: resultado = dato1 + dato2; break; case 2: resultado = dato1 - dato2; break; case 3: resultado = dato1 * dato2; break; case 4: resultado = dato1 / dato2; default: cout <<"No ha seleccionado una opcion correcta"; } cout << resultado <<"\n";}Hola, he hecho esta calculadora y me funciona todo menos cuando pongo un numero que no es ninguna de las opciones que doy, en vez de saltar el mensage cuando se selecciona una opcion incorrecta te dice que selecciones el dato1 y dato2 luego hace una suma y luego me salta el mensage... alguien me podria ayudar por favor.
Gracias.
P.D: He encontrado otro fallo, cuando selecciono la division siempre me salta el mensage de default y aparte me da el resultado:/.
ProfesorX:
--- Citar ---en vez de saltar el mensage cuando se selecciona una opcion incorrecta te dice que selecciones el dato1 y dato2 luego hace una suma y luego me salta el mensage... alguien me podria ayudar por favor.
--- Fin de la cita ---
Esto es porque lees las variables dato1 y dato2 antes del switch, debes leer las variables despues del switch y dentro de cada case
Ademas, recomiendo que uses una variable para el resultado de la suma, y otra para las opciones de tu menu, pues si ocupas la misma se borra la opcion:
Ejemplo:
--- Código: --- cout <<"[4]-Division.\n";
cin >> opcion;
switch(opcion)
{
case 1:
cout <<"Escriba la primera cifra: ";
cin >> dato1;
cout <<"Escriba la segunda cifra: ";
cin >> dato2;
resultado = dato1 + dato2;
break;
case 2:
// Repite la lectura en cada caso igual que arriba, y antes de hacer la operacion:
--- Fin del código ---
--- Citar ---cuando selecciono la division siempre me salta el mensage de default y aparte me da el resultado:/.
--- Fin de la cita ---
Solo inserta un break; antes del default:
--- Código: ---break;
default:
--- Fin del código ---
Saludos :)
cazagavilan:
Muchas gracias hace falta gente como tu por los foros xD
Navegación
Ir a la versión completa