题目
输入四则运算表达式,仅由数字、+、-、*、/、(、)组成,没有空格,求表达式的值,假设运算结构都是整数。
分析
#include<iostream>
using namespace std;
int expression();
int term();
int factor();
int factor(){
char character;
int result;
if((character=cin.peek())=='('){
cin.get();
result = expression();
cin.get();
}
else{
result = 0;
while((character=cin.peek())>='0' && character<='9'){
cin.get();
result *= 10;
result += (character-'0');
}
}
return result;
}
int term(){
char character;
int result = factor();
while((character=cin.peek())=='*' || character=='/'){
cin.get();
if(character=='*') result *= factor();
else result /= factor();
}
return result;
}
int expression(){
char character;
int result = term();
while((character=cin.peek())=='+' || character=='-'){
cin.get();
if(character=='+') result += term();
else result -= term();
}
return result;
}
int main(){
cout << expression();
return 0;
}