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