表达求值

表达求值

#include
#include
#include
using 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;
else result/=value;
}
else break;
}
return result;
}
int factor_value(){ //求因子的值
int result=0;
char c=cin.peek();
if(c==’(’){
cin.get();
result=expression_value();
cin.get();
}
else {
while(isdigit©){
result=10*result+c-‘0’;
cin.get();
c=cin.peek();

	}
}
return result;

}

发布了101 篇原创文章 · 获赞 6 · 访问量 4027

猜你喜欢

转载自blog.csdn.net/weixin_45592404/article/details/104272416
今日推荐