Advertisement
Arnab_Manna

Postfix Evaluation

Dec 16th, 2022
632
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.11 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<ctype.h>
  4. #define MAX 100
  5.  
  6. int stack[MAX];
  7. int top = -1;
  8.  
  9. void push(int x)
  10. {
  11.     stack[++top]= x;
  12. }
  13.  
  14. int pop()
  15. {
  16.     if(top == -1)
  17.         return -1;
  18.     else
  19.     {
  20.         return stack[top--];    
  21.     }  
  22. }
  23.  
  24. int POW(int n,int m)
  25. {
  26.     int i,res=1;
  27.     for(i=1;i<=m;i++)
  28.     {
  29.         res=res*n;
  30.     }
  31.     return res;
  32. }
  33. int main()
  34. {
  35.     char exp[MAX];
  36.     char data;
  37.     int i,k,op1,op2,res=0;
  38.    
  39.     printf("\n Enter Exp. =");
  40.     scanf("%s",exp);
  41.     for(i=0;exp[i]!='\0';i++)
  42.     {
  43.         data=exp[i];
  44.         if(isalpha(exp[i]))
  45.         {
  46.             printf("kaka  %c er velu dao :",data);
  47.             scanf("%d",&k);
  48.             push(k);
  49.         }
  50.         else
  51.         {
  52.             op2=pop();
  53.             op1=pop();
  54.             switch(data)
  55.             {
  56.                 case '+':
  57.                     res=op1+op2;
  58.                     break;
  59.                 case '-':
  60.                     res=op1-op2;
  61.                     break;
  62.                 case '*':
  63.                     res=op1*op2;
  64.                     break;
  65.                 case '/':
  66.                     res=op1/op2;
  67.                     break;
  68.                 case '%':
  69.                     res=op1%op2;
  70.                     break;
  71.                 case '^':
  72.                     res=POW(op1,op2);
  73.                     break;
  74.             }
  75.             push(res); 
  76.         }
  77.     }
  78.     printf("%d",stack[0]);
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement