后缀运算符的计算

来源:互联网 发布:淘宝差评师哪里找 编辑:程序博客网 时间:2024/05/16 06:46
/*description: 后缀运算符的计算   输入以#结尾 整数运算例如:输入: 12+#输出: 3author: jz   Date: 20140818*/#include<stdio.h>#include<stdlib.h>#include<stack>#include<queue>#include <iostream>using namespace  std;stack <int> OPND;int Operate(int a,char theat,int b){switch(theat){case '+' :return a+b;break;case '-': return a-b;break;case '*': return a*b;break;case '/': return a/b;break;default : printf("error");}}int in(char c){if('+'==c||'-'==c||'*'==c||'/'==c)return 1;else return 0;}int calcute(){   char c=getchar();while(c!='#')//输入以#结尾{if(!in(c)){OPND.push(int(c-'0'));c=getchar();}else{int a=OPND.top();OPND.pop();int b=OPND.top();OPND.pop();int r=Operate(b,c,a);//第一个运算符为栈里面的第二个值OPND.push(r);c=getchar();}}return OPND.top();}void main(){printf("后缀运算符的计算以‘#’结尾\n");printf("result:%d",calcute());}

0 0