fork download
  1. #include <stdio.h>
  2.  
  3. #define SIZE 10
  4. double stack[SIZE];
  5. int sp;
  6.  
  7. void push(double value);
  8. double pop(void);
  9. int isFull(void);
  10. int isEmpty(void);
  11. void answer(void);
  12. void reset(void);
  13.  
  14. int main(void){
  15. reset();
  16.  
  17. while(1) {
  18. int choice;
  19. double value;
  20. double a, b;
  21.  
  22. scanf("%d", &choice);
  23.  
  24. switch(choice) {
  25. case 1:
  26. b = pop();
  27. a = pop();
  28. push(a + b);
  29. break;
  30.  
  31. case 2:
  32. b = pop();
  33. a = pop();
  34. push(a - b);
  35. break;
  36.  
  37. case 3:
  38. b = pop();
  39. a = pop();
  40. push(a * b);
  41. break;
  42.  
  43. case 4:
  44. b = pop();
  45. a = pop();
  46. push(a / b);
  47. break;
  48.  
  49. case 5:
  50. scanf("%lf", &value);
  51. printf("data:%f\n", value);
  52. push(value);
  53. break;
  54.  
  55. case 9:
  56. answer();
  57. return 0;
  58. }
  59. }
  60.  
  61. return 0;
  62. }
  63.  
  64. void push(double value)
  65. {
  66. stack[sp] = value;
  67. sp++;
  68. }
  69.  
  70. double pop(void)
  71. {
  72. sp--;
  73. return stack[sp];
  74. }
  75.  
  76. int isFull(void)
  77. {
  78. return sp >= SIZE;
  79. }
  80.  
  81. int isEmpty(void)
  82. {
  83. return sp <= 0;
  84. }
  85.  
  86. void answer(void)
  87. {
  88. printf("\nanswer:%f\n", pop());
  89. }
  90.  
  91. void reset(void)
  92. {
  93. sp = 0;
  94. }
Success #stdin #stdout 0s 5320KB
stdin
5 1 5 2 1 9
stdout
data:1.000000
data:2.000000

answer:3.000000