fork download
  1. #include<stdio.h>
  2.  
  3. #include<stdlib.h>
  4. #include<ctype.h>
  5. #include<math.h>
  6.  
  7.  
  8. int i, top = -1;
  9. int op1, op2, res, s[20];
  10. char postfix[90], symb;
  11.  
  12. void push(int item)
  13. {
  14. top = top + 1;
  15. s[top] = item;
  16. }
  17.  
  18. int pop()
  19. {
  20. int item;
  21. item = s[top];
  22. top = top - 1;
  23. return item;
  24. }
  25.  
  26. void main()
  27. {
  28. printf("\nEnter a valid postfix expression:\n");
  29. scanf("%s", postfix);
  30. for (i = 0; postfix[i] != '\0'; i++)
  31. {
  32. symb = postfix[i];
  33. if (isdigit(symb))
  34. {
  35. push(symb - '0');
  36. }
  37. else
  38. {
  39. op2 = pop();
  40. op1 = pop();
  41. switch (symb)
  42. {
  43. case '+':
  44. push(op1 + op2);
  45. break;
  46. case '-':
  47. push(op1 - op2);
  48. break;
  49. case '*':
  50. push(op1 * op2);
  51. break;
  52. case '/':
  53. push(op1 / op2);
  54. break;
  55. case '%':
  56. push(op1 % op2);
  57. break;
  58. case '$':
  59. case '^':
  60. push(pow(op1, op2));
  61. break;
  62. default:
  63. push(0);
  64. }
  65. }
  66. }
  67. res = pop();
  68. printf("\n Result = %d", res);
  69. }
  70.  
  71.  
  72.  
Success #stdin #stdout 0.02s 25716KB
stdin
Standard input is empty
stdout
#include<stdio.h>

#include<stdlib.h>
#include<ctype.h>
#include<math.h>


int i, top = -1;
int op1, op2, res, s[20];
char postfix[90], symb;

void push(int item)
{
top = top + 1;
s[top] = item;
}

int pop()
{
int item;
item = s[top];
top = top - 1;
return item;
}

void main()
{
printf("\nEnter a valid postfix expression:\n");
scanf("%s", postfix);
for (i = 0; postfix[i] != '\0'; i++)
{
symb = postfix[i];
if (isdigit(symb))
{
push(symb - '0');
}
else
{
op2 = pop();
op1 = pop();
switch (symb)
{
 case '+':
push(op1 + op2);
break;
case '-':
push(op1 - op2);
break;
case '*':
push(op1 * op2);
break;
case '/':
push(op1 / op2);
break;
case '%':
push(op1 % op2);
break;
case '$':
case '^':
push(pow(op1, op2));
break;
default:
push(0);
}
}
}
res = pop();
printf("\n Result = %d", res);
}