Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: daniloops en 30 Mayo 2014, 18:36 pm



Título: problema switch case
Publicado por: daniloops en 30 Mayo 2014, 18:36 pm
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
 


Título: Re: problema switch case
Publicado por: El Benjo en 30 Mayo 2014, 23:10 pm
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():

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. main()
  5. {
  6.      int num1,num2,div,suma,resta,mult;
  7.      int opc = 0;
  8.  
  9.      printf("              INGRESE UNA OPCION DEL MENU    \n");
  10.  
  11. while(opc != 6)
  12. {
  13. printf("1.- ingrese 2 numeros \n");
  14. printf("2.- Imprima la suma \n");
  15. printf("3.- Imprimia la resta \n");
  16. printf("4.- Imprima la multiplicacion \n");
  17. printf("5.- Imprima la division \n");
  18. printf("6.- Salir \n");
  19.  
  20. printf("ingrese una opcion");
  21. scanf("%d",&opc);
  22.  
  23. switch(opc)
  24. { // inicio switch
  25.        case 1: printf("ingrese el primer numero \n");
  26.                scanf("%d",&num1);
  27.                printf("ingrese el segundo numero \n");
  28.                scanf("%d",&num2);
  29.                break;
  30.  
  31.        case 2: suma=num1+num2;
  32.                printf("la suma es %d \n",suma);
  33.                break;
  34.  
  35.        case 3: resta=num1-num2;
  36.                printf("la resta es %d \n",resta);
  37.                break;
  38.  
  39.        case 4: mult=num1*num2;
  40.                printf("la multiplicacion es %d \n",mult);
  41.                break;
  42.  
  43.        case 5: div=num1/num2;
  44.                printf("la division es %d \n",div);                
  45.                break;
  46.  
  47.                }// fin switch      
  48.  
  49.                system("pause");
  50.  
  51.        }
  52. }

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.