#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
int factor_value();
int term_value();
int expression_value();
int main(){
cout << expression_value() << endl;
cin.get();
cin.get();
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();//cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,
//但它只是观测,指针仍停留在当前位置,并不后移。如果要访问的字符是文件结束符,则函数值是EOF(-1)。
//其功能是从输入流中读取一个字符 但该字符并未从输入流中删除
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(c)){
result = 10 * result + c - '0';
cin.get();
c = cin.peek();
}
}
return result;
}//(2+3)*(5+7)+9/3