Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stack>
- #include <string>
- using namespace std;
- float evaluate(string);
- int main(){
- char exp[1000];
- cout<<"Enter a postfix expression separated by','(e.g. 54,6,+):"<<endl;
- cin.getline(exp,1000);
- float x;
- x=evaluate(exp);
- cout<<"Answer is "<<x<<endl;
- return 0;
- }
- float evaluate(string s){
- int i=0,id=0;
- stack <float> post;
- float op1,op2,result,num=0;
- while(s[i]!='\0'){
- if(isdigit(s[i])){
- num=num*10+(int)(s[i]-'0');
- id=1;
- }
- else if(s[i]==','&&id){
- post.push(num);
- id=0;
- num=0;
- }
- else{
- op2=post.top();
- post.pop();
- op1=post.top();
- post.pop();
- switch(s[i]){
- case '+':result=op1+op2;break;
- case '-':result=op1-op2;break;
- case '*':result=op1*op2;break;
- case '/':result=op1/op2;break;
- case '%':result=(int)op1%(int)op2;break;
- }
- post.push(result);
- }
- i++;
- }
- return result;
- }
Add Comment
Please, Sign In to add comment