描述:
两位正整数的简单算术运算(只考虑整数运算),算术运算为:
+,加法运算;
-,减法运算;
*,乘法运算;
/,整除运算;
%,取余运算。
算术表达式的格式为(运算符前后可能有空格):
运算数 运算符 运算数
请输出相应的结果。
输入:
一行算术表达式。
输出:
整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2位)。
样例输入:
32+64
样例输出:
96
#include<iostream>
using namespace std;
int expression_value();
int term_value();
int small_value();
int main()
{
cout<<expression_value()<<endl;
return 0;
}
int small_value()
{
int result=0;
char c=cin.peek();
if(c=='(')
{
cin.get();
result=expression_value();
cin.get();
}
else
{
while(isdigit(c))
{
cin.get();
result=(result*10+c-'0');
c=cin.peek();
}
}
return result;
}
int term_value()
{
int result=small_value();
char c=cin.peek();
bool flag=true;
while(flag)
{
if(c=='*'||c=='/')
{
cin.get();
if(c=='*')
result*=small_value();
else result/=small_value();
c=cin.peek();
}
flag=false;
}
return result;
}
int expression_value()
{
int result=term_value();
char c=cin.peek();
bool flag=true;
while(flag)
{
if(c=='-'||c=='+')
{
cin.get();
if(c=='+')
result+=term_value();
else result-=term_value();
c=cin.peek();
}
flag=false;
}
return result;
}