Ver Mensaje Individual
  #6 (permalink)  
Antiguo 24/11/2011, 14:22
vladimirgude
 
Fecha de Ingreso: septiembre-2011
Mensajes: 16
Antigüedad: 12 años, 7 meses
Puntos: 7
Respuesta: Dev C++ Ejercicio!

No veo el error que dices.
Recuerda que tienes que pulsar el caracter '=' despues de una operación.
Le agregué la opción de inicializar o borrar, con el operador o tecla 'C'. Puedes ingresar la tecla 'C', o '=' (para el resultado), o 'X' (para salir), cuando te solicite que insertes un operador.

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6. int valor, n1, n2;
  7. char ultimo_ingreso, operador, opcion;
  8.  
  9. ultimo_ingreso='C';
  10. n1=0;
  11. valor=0;
  12. do{
  13. system("cls");
  14. printf("\n\t|======== Pantalla =======");
  15. printf("\n\t|%d", valor);
  16. printf("\n\t|=========================");
  17. printf("\n\t|7|  |8|  |9|  |+|");
  18. printf("\n\t|4|  |5|  |6|  |-|");
  19. printf("\n\t|1|  |2|  |3|  |*|");
  20. printf("\n\t|1|  |2|  |3|  |/|");
  21. printf("\n\t|=|  |x|:salir");
  22. printf("\n\t|=========================");
  23.  
  24. //lectura
  25. if (ultimo_ingreso == 'C'){
  26.    printf("\n\t| inserte un valor: ");
  27.    scanf("%d", &valor);
  28. }
  29. if (ultimo_ingreso == 'N' || ultimo_ingreso == 'M'){
  30.    printf("\n\t| inserte un operador: ");
  31.    scanf("%c", &opcion);
  32. }
  33. if (ultimo_ingreso == 'P'){
  34.    printf("\n\t| inserte un valor: ");
  35.    scanf("%d", &valor);
  36. }
  37.  
  38. //cálculos
  39. if (ultimo_ingreso == 'C'){
  40.    n1=valor;
  41.    ultimo_ingreso='N';
  42. }
  43.  
  44. else
  45.  
  46. if (ultimo_ingreso == 'N'){
  47.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  48.       operador = opcion;
  49.       ultimo_ingreso='P';
  50.    }
  51.    if (opcion == 'x' || opcion == 'X')
  52.       return 0; //finalizar
  53.    if (opcion == 'c' || opcion == 'C'){
  54.       n1=0;
  55.       n2=0;
  56.       valor=0;
  57.       ultimo_ingreso='C';
  58.    }
  59. }
  60.  
  61. else
  62.  
  63. if (ultimo_ingreso == 'P'){
  64.    n2=valor;
  65.    ultimo_ingreso='M';
  66. }
  67.  
  68. else
  69.  
  70. if (ultimo_ingreso == 'M'){
  71.    if (opcion == '='){
  72.       if (operador == '+')
  73.          n1 = n1+n2;
  74.       if (operador == '-')
  75.          n1 = n1-n2;
  76.       if (operador == '*')
  77.          n1 = n1*n2;
  78.       if (operador == '/')
  79.          n1 = n1/n2;
  80.       valor = n1;
  81.       ultimo_ingreso = 'N';
  82.    }
  83.    
  84.    if (opcion == '+' || opcion == '-' || opcion == '*' || opcion == '/'){
  85.       operador = opcion;
  86.       ultimo_ingreso='P';
  87.    }
  88.    if (opcion == 'x' || opcion == 'X')
  89.       return 0; //finalizar
  90.    if (opcion == 'c' || opcion == 'C'){
  91.       n1=0;
  92.       n2=0;
  93.       valor=0;
  94.       ultimo_ingreso='C';
  95.    }
  96. }
  97.  
  98. }while(1); //ciclo infinito. Salir con el operador 'X'
  99. return 0;
  100. }

Avísame cómo te fué. Saludos...