求一个表达式的值,中间不带任何分割符,允许括号,加,减,乘,除的运算,所有运算都在整数范围内
关于表达式求值的递归思想:
表达式的定义:若干个项相加或者相减
项的定义:若干个因子相乘或者相除
因子的定义:一个整数,或者一对括号所括起来的表达式
下面定义了三个函数,每个函数的功能写的都很清楚了,根据定义来就可以了
//(powered by guowei from icourse.org)
#include <iostream>
#include <cctype>
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 = 0;
result = term_value();
bool more = true;
while(more){
if(cin.peek() == '+' ){
cin.get();
result += term_value() ;
}
else if (cin.peek() == '-'){
cin.get();
result -= term_value();
}
else{
more = f