后缀表达式求值
2013-04-18 09:37
106 查看
输入只含数字和运算符的后缀表达式,求其值。
#include<iostream> #include<stack> #include<ctype.h> #include<math.h> #include<string> using namespace std; bool issymbol(unsigned char c) { if ((c== '+')||(c== '-')||(c== '*')||(c== '/')) return true; return false; } void main() { stack<int> s1; unsigned char ch,che; int a,b; int sum=0; ch=cin.get(); while(ch!='#') { if(ch==' '||ch=='\n') { ch=cin.get(); } else if(issymbol(ch)) { if(!s1.empty()) { a=s1.top(); s1.pop(); } if(!s1.empty()) { b=s1.top(); s1.pop(); } if(ch=='+') { s1.push(a+b); } else if(ch=='-') { s1.push(b-a); } else if(ch=='*') { s1.push(a*b); } else { s1.push(b/a); } ch=cin.get(); } else if(isdigit(ch)) { sum=ch-48; ch=cin.get(); while(isdigit(ch)) { sum=sum*10+ch-48; ch=cin.get(); } s1.push(sum); } else ch=cin.get(); } if(!s1.empty()) cout<<s1.top()<<endl; }
相关文章推荐
- 表达式求值(前缀、中缀、后缀)
- 前缀、中缀、后缀表达式及其求值
- 中缀表达式转后缀表达式并求值
- 中缀表达式转换成后缀表达式以及逆波兰表示法求值
- 中缀表达式转成后缀表达式 后缀表达式求值
- 算术表达式系列之后缀表达式求值
- C语言 实现中缀表达式转后缀表达式并求值
- 表达式求值(中缀变后缀再求值)
- 后缀表达式实现表达式求值
- 后缀表达式求值
- 后缀表达式加表达式求值
- C++Primer 练习9.52(续) 中缀表达式转后缀表达式求值
- 编程对一个逆波兰式(后缀表达式)进行求值,如“435*+23*-”的结果是13,函数的参数为字符串(后缀表达式),假定字符串为正确的逆波兰式。
- 中后缀表达式的相互转换和四则运算表达式求值
- NYOJ1272 表达式求值(后缀求值,特殊处理)(河南省第九届ACM省赛)
- 数据结构上机题目4--后缀表达式求值
- 栈的应用-后缀表达式运算求值
- 后缀表达式求值
- 后缀表达式的求值的算法
- 后缀表达式的求值的算法