表达式计算
来源:互联网 发布:如何判断域名被劫持 编辑:程序博客网 时间:2024/06/08 04:43
//递归/*表达式计算 输入为四则运算表达式,仅由数字,+ ,- ,* ,\ ,(、)组成,没有空格,要求求其值。 假设运算符结果都是整数。“/"结果也是整数 */ //输入(2+3)*(5+7)+9/3 //输出 63 #include<bits/stdc++.h> #include<cstring> #include<cstdlib>// atof函数:将字符串类型的浮点数转化为doubleusing 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();//求第一项的值 bool more =true;while(more){char op=cin.peek();//看一个字符,不取走 if(op=='+'||op=='-'){cin.get();//从输入中取走一个字符 int value=term_value();if(op=='+') result+=value;else result -=value;}else more =false;}return result;}int term_value()//求一个项的值 {int result =factor_value();//求第一个因子的值 while(true) {//是否有更多的因子 char op=cin.peek();if(op=='*'||op=='/'){cin.get();int value=factor_value();if(op=='*') result*=value; result/=value;}else break;}return result;} int factor_value()//求一个因子的值 { int result =0; char c=cin.peek(); if(c=='('){ //(290+34) cin.get(); result=expression_value(); cin.get(); } else{ //789 while(isdigit(c)){ result=10*result+c-'0'; cin.get(); c=cin.peek(); } } return result;}
阅读全文
0 0
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算
- 计算表达式
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算
- 表达式计算 .
- 计算表达式
- 计算表达式
- 表达式计算
- 表达式计算
- 表达式计算
- 一个可以监控U盘接入、自动拷贝文件到U盘、自动移除U盘的小程序
- 使用Solr索引MySQL数据
- 【C语言】一维数组和二维数组
- Spring解决乱码问题
- React Native未来导航者:react-navigation 使用详解
- 表达式计算
- 7 firewalld打开关闭防火墙与端口
- 9 种改善 AngularJS 性能的方法
- ORM的概念, ORM到底是什么
- Singleton的7种实现
- spring事务和myBatis事务的设置
- Mybatis的搭建
- Jdata大数据竞赛总结
- linux内核 address_space 结构