fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<ctype.h>
  4. #include<string.h>
  5.  
  6. int stack[10],sp=0;
  7.  
  8. int pop(void);
  9. void push(int n);
  10.  
  11. int main() {
  12. char siki[80];
  13. char *p;
  14. int v1, v2;
  15. printf("input:");
  16. fgets(siki, 80, stdin);
  17.  
  18. p = strtok(siki, " ");
  19. push(atoi(p)); // stack[sp] = atoi(p);
  20. // // sp++;
  21. while(p) {
  22. printf("%s\n", p);
  23. p = strtok(NULL, " ");
  24. if(p == NULL) {
  25. break;
  26. }
  27. // else {
  28. // stack[sp] = atoi(p);
  29. // sp++;
  30. // }
  31. if (*p == '+') {
  32. v1 = pop();
  33. v2 = pop();
  34. push(v2 + v1);
  35. }
  36. else if (*p == '-') {
  37. v1 = pop();
  38. v2 = pop();
  39. push(v2 - v1);
  40. }
  41. else if (*p == '*') {
  42. v1 = pop();
  43. v2 = pop();
  44. push(v2 * v1);
  45. }
  46. else if (*p == '/') {
  47. v1 = pop();
  48. v2 = pop();
  49. push(v2 / v1);
  50. }
  51. else {
  52. push(atoi(p));
  53. }
  54. }
  55.  
  56. int ans = stack[0];
  57. printf("%d\n", ans);
  58.  
  59. return 0;
  60. }
  61.  
  62. int pop(void)
  63. {
  64. return stack[--sp];
  65. }
  66.  
  67. void push(int n)
  68. {
  69. stack[sp++] = n;
  70. }
  71.  
Success #stdin #stdout 0s 4844KB
stdin
5 4 + 3 - 2 * 1 /
stdout
input:5
4
+
3
-
2
*
1
/
12