problema calculadora
Publicado por Lara (2 intervenciones) el 20/04/2009 15:54:03
Hola a todos,
Estoy empezando a aprender a programar en C. El ejercicio que tengo que resolver es el siguiente, realizar un programa de calculadora sencillo donde tienen que haber dos menus, uno donde se pueda elegir una de las siguientes cuatro operaciones, suma, resta, division y multiplicacion y un segundo menu, donde se pueda elegir entre las siguientes tres operaciones, nuevo calculo, continuar operando o finalizar el programa.
Yo lo he programado y al compilarlo no me da ningun error pero a la hora de ejecutarlo sale tan solo el primer menu de las operaciones y nunca me sale el segundo menu. ¿Alguien podria ayudarme?
// Programa calculadora sencilla
#include<stdio.h>
// Inicio del programa principal
int main (void)
{
//declaracion de las variables
double numb1, numb2, sol;
int op, menu;
begin: // Referencia de goto-
//Se pregunta por el primer numero
printf("Por favor, dame el primer numero: ");
scanf("%lf",&numb1);
//Menu para elegir una de los siguientes casos: case1=+, case2=-, case3=*, case4=/
//First we have to break our program before case 5
//for that I use the do .. while loop
oper:
do { // realiza los siguientes comandos hasta que la condicion sea correcta
printf("Que operacion deseas realizar: ");
printf("(1) Suma (2) Resta (3) Multiplicacion (4) Division ");
scanf("%d",&op);
printf("Dame el segundo numero: ");
scanf("%lf",&numb2);
switch (op){
//Addition of two numbers
case 1:
sol = numb1+numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Subtraction of two numbers
case 2:
sol = numb1-numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Multiplication of two numbers
case 3:
sol = numb1*numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Division of two numbers
case 4:
//If the numb2 is 0, the division is not possible
if(numb2==0){
printf("La division no es posible! ");
}
else{
sol = numb1/numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
}
break;
}
} while (op<=4); // Creo que el problema esta aqui, pero no se me ocurre como solucionarlo
/* The program should have a menu
* where one can choose one of this options
* (1) new calculation
* (2) other operation
* (3) finish */
printf("Elige una opcion: (1) nuevo calculo (2) otra operacion (3) terminar ");
scanf("%d",&menu);
if(menu==1 || menu==2 || menu==3){
if (menu==1){
goto begin;
}
if (menu==2){
numb1=sol;
goto oper;
}
if (menu==3){
printf("End");
}
}
return(0);
}
Estoy empezando a aprender a programar en C. El ejercicio que tengo que resolver es el siguiente, realizar un programa de calculadora sencillo donde tienen que haber dos menus, uno donde se pueda elegir una de las siguientes cuatro operaciones, suma, resta, division y multiplicacion y un segundo menu, donde se pueda elegir entre las siguientes tres operaciones, nuevo calculo, continuar operando o finalizar el programa.
Yo lo he programado y al compilarlo no me da ningun error pero a la hora de ejecutarlo sale tan solo el primer menu de las operaciones y nunca me sale el segundo menu. ¿Alguien podria ayudarme?
// Programa calculadora sencilla
#include<stdio.h>
// Inicio del programa principal
int main (void)
{
//declaracion de las variables
double numb1, numb2, sol;
int op, menu;
begin: // Referencia de goto-
//Se pregunta por el primer numero
printf("Por favor, dame el primer numero: ");
scanf("%lf",&numb1);
//Menu para elegir una de los siguientes casos: case1=+, case2=-, case3=*, case4=/
//First we have to break our program before case 5
//for that I use the do .. while loop
oper:
do { // realiza los siguientes comandos hasta que la condicion sea correcta
printf("Que operacion deseas realizar: ");
printf("(1) Suma (2) Resta (3) Multiplicacion (4) Division ");
scanf("%d",&op);
printf("Dame el segundo numero: ");
scanf("%lf",&numb2);
switch (op){
//Addition of two numbers
case 1:
sol = numb1+numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Subtraction of two numbers
case 2:
sol = numb1-numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Multiplication of two numbers
case 3:
sol = numb1*numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
break;
//Division of two numbers
case 4:
//If the numb2 is 0, the division is not possible
if(numb2==0){
printf("La division no es posible! ");
}
else{
sol = numb1/numb2;
printf("La solucion es: ");
printf("sol=%lf ",sol);
}
break;
}
} while (op<=4); // Creo que el problema esta aqui, pero no se me ocurre como solucionarlo
/* The program should have a menu
* where one can choose one of this options
* (1) new calculation
* (2) other operation
* (3) finish */
printf("Elige una opcion: (1) nuevo calculo (2) otra operacion (3) terminar ");
scanf("%d",&menu);
if(menu==1 || menu==2 || menu==3){
if (menu==1){
goto begin;
}
if (menu==2){
numb1=sol;
goto oper;
}
if (menu==3){
printf("End");
}
}
return(0);
}
Valora esta pregunta


0