表达式求值

网友投稿 252 2022-09-23

表达式求值

输入一个计算式得到结果

#include#includeusing namespace std;//求因子的值int factor_value();//求项的值int term_value();//表达式的值int expression_value();int main(){ cout << expression_value() << endl; return 0;}int expression_value(){ //得到第一项的值 int result = term_value(); while(true) { //看第一个字符 不取走 char op = cin.peek(); if(op=='+'||op=='-') { //把符号取走 cin.get(); //获得下一项的值 int value = term_value(); if(op=='-') result -= value; if(op=='+') result += value; } //如果下一项没有 则退出 循环 查找下一个 else break; } return result;}//求一项的值int term_value(){ int result = factor_value(); while(true) { char op = cin.peek(); if(op=='*'||op=='/') { cin.get(); int value = factor_value(); //下一因子的值保存在value上 if(op == '*') result *= value; else result /= value; } else { break; } } return result;}//q求因子的值int factor_value(){ int result = 0; char c = cin.peek(); if(c=='(') { //取括号 cin.get(); result = expression_value(); //去括号 cin.get(); } else{ while(isdigit(c)) { result = 10*result+c-'0'; //因为是字符每次读入都要乘十累加 cin.get(); c = cin.peek(); } } return result;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据结构
下一篇:新任CEO陈磊带拼多多实现首个盈利季!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~