problema switch case

Iniciado por daniloops, 30 Mayo 2014, 18:36 PM

0 Miembros y 1 Visitante están viendo este tema.

daniloops

Hola gente tengo una duda, tengo que hacer un programa que me pida ingresar 2 numeros, luego imprimir la suma, resta, mult y division pero el problema es que tengo que hacerlo con un menú, para eso utilize la estructura switch, se como hacerlo en general pero algo me falla creo que es falta de logica de mi parte, me agrada la programacion pero me cuesta entenderla

ingreso la opcion 1 del menu para ingresar los 2 numeros, pero una vez ingresados lo que quiero es que me devuelva al menu con los numeros ya ingresados para que me realize las operaciones, pero al ingresar los 2 numeros elprograma se cierra

Lo otro que quiero hacer es por ejemplo: si ingreso la opcion 3 sin haber ingresado los 2 numeros, que imprima un mensaje que diga opcion invalida o primero ingrese los numeros. ojala me entiendan

este es el cod que hice:

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

main()
{
     int num1,num2,div,suma,resta,mult;
     int opc;
     
     printf("              INGRESE UNA OPCION DEL MENU    \n");


printf("1.- ingrese 2 numeros \n");
printf("2.- Imprima la suma \n");
printf("3.- Imprimia la resta \n");
printf("4.- Imprima la multiplicacion \n");
printf("5.- Imprima la division \n");

printf("ingrese una opcion");
scanf("%d",&opc);

switch(opc)
{ // inicio switch
       case 1: printf("ingrese el primer numero \n");
               scanf("%d",&num1);
               printf("ingrese el segundo numero \n");
               scanf("%d",&num2);
               break;
               
       case 2: suma=num1+num2;
               printf("la suma es %d \n",suma);
               break;
               
       case 3: resta=num1-num2;
               printf("la resta es %d \n",resta);
               break;
               
       case 4: mult=num1*num2;
               printf("la multiplicacion es %d \n",mult);
               break;
               
       case 5: div=num1/num2;
               printf("la division es %d \n",div);                
               break;
               
               }// fin switch      
               
               system("pause");
               
               }          

ojala me digan que tengo mal para asi sacar una solucion saludos

El Benjo

Necesitas añadir una última opción al menú, que será la opción para salir. Y tu sentencia switch junto con la presentación del munú la colocarás dentro de un bucle while():

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

main()
{
      int num1,num2,div,suma,resta,mult;
      int opc = 0;
     
      printf("              INGRESE UNA OPCION DEL MENU    \n");

while(opc != 6)
{
printf("1.- ingrese 2 numeros \n");
printf("2.- Imprima la suma \n");
printf("3.- Imprimia la resta \n");
printf("4.- Imprima la multiplicacion \n");
printf("5.- Imprima la division \n");
printf("6.- Salir \n");

printf("ingrese una opcion");
scanf("%d",&opc);

switch(opc)
{ // inicio switch
        case 1: printf("ingrese el primer numero \n");
                scanf("%d",&num1);
                printf("ingrese el segundo numero \n");
                scanf("%d",&num2);
                break;
               
        case 2: suma=num1+num2;
                printf("la suma es %d \n",suma);
                break;
               
        case 3: resta=num1-num2;
                printf("la resta es %d \n",resta);
                break;
               
        case 4: mult=num1*num2;
                printf("la multiplicacion es %d \n",mult);
                break;
               
        case 5: div=num1/num2;
                printf("la division es %d \n",div);               
                break;
               
                }// fin switch     
               
                system("pause");
               
        }
}


El bucle while es para que tu código se siga ejecutando a menos que elijan la opción 6. Todavía no pruebo el código pero creo que debería funcionar sin problemas.
www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.