Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/04/2010, 15:18
roser24
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: problema con switch

Hola,vereis intente culminar el programa pero la opcion de salir no me funciona bien me sale lo de pulsa una tecla para finalizar pero al dar intro me vuelve a pedir los numeros,... como podria modificar mi codifo para que se visualize correctamente?

Código C:
Ver original
  1. /*1.    Programa donde se introducen dos enteros y se visualizará el siguiente menú (en una función a crear):
  2.     1.- Suma
  3.     2.- Diferencia entre 1º y 2º
  4.     3.- Diferencia entre 2º y 1º
  5.     4.- Producto
  6.     5.- División del 1º entre 2º
  7.     6.- División del 2º entre 1º
  8.     7.- Comparar
  9.     8.- Fin del programa.
  10.  
  11. El programa se ejecutará hasta que se introduzca la opción 8.
  12. Las opciones se validarán comprendidas entre 1 y 8, ambos incluidos.
  13. Si la opción introducida es 1, se llamará a una función que retorne el valor de la suma y posteriormente, desde el programa principal, se visualizará dicho valor.
  14. Si la opción introducida es 2, se llamará a una función que retorne el valor de la diferencia del 1º y 2º, posteriormente y desde el programa principal se visualizará dicho valor.
  15. Si la opción introducida es 3, se llamará a una función que retorne el valor de la diferencia del 2º y 1º, posteriormente y desde el programa principal se visualizará dicho valor.
  16. Si la opción introducida es 4, se llamará a una función que retorne el valor del producto y posteriormente, desde el programa principal, se visualizará dicho valor.
  17. Si la opción introducida es 5, se llamará a una función que retorne el valor de la división del 1º entre el 2º y posteriormente, desde el programa principal, se visualizará dicho valor.
  18. Si la opción introducida es 6, se llamará a una función que retorne el valor de la división del 2º entre el 1º y posteriormente, desde el programa principal, se visualizará dicho valor.
  19. Si la opción introducida es 7, se llamará a una función que retorne si son iguales o no y posteriormente, desde el programa principal, se visualizará dicha igualdad o diferencia.
  20. ¿De qué tipos serán los valores retornados por las distintas funciones a crear? (Razona la respuesta).*/
  21. int suma(int,int);//declaracion de prototipo
  22. int resta(int,int);
  23. int producto(int,int);
  24. int division(int,int);
  25. int compara(int,int);
  26. void menu();
  27. void pausa();
  28. #include<stdio.h>
  29. #include<conio.h>//por gotoxy
  30. void main(void){
  31. int num1,num2,resul=0,op;
  32.  menu();
  33.  do{
  34.  do{
  35.  printf("elige la operacion a realizar:\n");
  36.  scanf("%d",&op);
  37.     if(op==8){
  38.     printf("FIN,saliendo del programa...");
  39.     }
  40.   }while(op<1 || op>8);
  41.  
  42. printf("\nIntroduce un numero:\n");
  43. scanf("%d",&num1);
  44.  
  45. printf("Introduce un segundo numero:\n");
  46. scanf("%d",&num2);
  47.  
  48. switch(op){
  49.  
  50. case 1:
  51.             resul=suma(num1,num2);   //llamada a la funcion recepcionando el entorno
  52.             printf("el resultado es:%d",resul);
  53.  
  54.             break;
  55. case 2:
  56.             resul=resta(num1,num2);
  57.             printf("el resultado es:%d\n",resul);
  58.  
  59.             break;
  60. case 3:
  61.             resul=resta(num2,num1);
  62.             printf("El resultado es:%d\n",resul);
  63.  
  64.             break;
  65. case 4:
  66.             resul=producto(num1,num2);
  67.             printf("El resultado es:%d\n",resul);
  68.  
  69.             break;
  70. case 5:
  71.             resul=division(num1,num2);
  72.             printf("El resultado es:%d\n",resul);
  73.  
  74.             break;
  75.  
  76. case 6:
  77.             resul=division(num2,num1);
  78.             printf("El resultado es:%d\n",resul);
  79.  
  80.             break;
  81. case 7:
  82.             resul=compara(num1,num2);
  83.             if(resul==1) printf("\nSON IGUALES\n");
  84.             else printf("SON DISTINTOS\n");
  85.  
  86.  case 8:
  87.             break;
  88.             default: break;
  89. };
  90.  
  91. menu();
  92. }while(op>=1 && op<=7);
  93. }
  94. //implementacion de la funcion
  95. int suma(int a,int b){
  96. return a+b;
  97. }
  98. int resta(int a,int b){
  99. return a-b;
  100. }
  101.  
  102. int producto(int a,int b){
  103. return a*b;
  104. }
  105. int division(int a,int b){
  106. return a/b;
  107. }
  108. int compara(int a,int b){
  109. if(a==b)
  110. return 1;
  111. else
  112. return 0;
  113. }
  114. void pausa(){
  115. char basura;
  116. printf("\nPulsa ENTER para fin..\n");
  117. scanf("%c",&basura);
  118. }
  119.  
  120. void menu(){
  121.  
  122.  
  123.  
  124. printf("****MENU PRINCIPAL********\n");
  125. printf("1.-SUMA.\n");
  126. printf("2.-Resta primer numero menos el segundo\n");
  127. printf("3.-Resta segundo numero menos el primero\n");
  128. printf("4.-Producto de 2 numeros\n");
  129. printf("5.-Division del primero entre el segundo\n");
  130. printf("6.-Division del segundo por el primero\n");
  131. printf("7.-Compara 2 numeros:\n");
  132. printf("8.-Salir\n");
  133.  
  134. }