描述
输入一个中缀算术表达式,求解表达式的值。运算符包括+、-、*、/、(、)、=,参加运算的数为double类型且为正数。(要求:直接针对中缀算术表达式进行计算,不能转换为后缀或前缀表达式再进行计算,只考虑二元运算即可。)
输入
多组数据,每组数据一行,对应一个算术表达式,每个表达式均以“=”结尾。当表达式只有一个“=”时,输入结束。参加运算的数为double类型。
输出
对于每组数据输出一行,为表达式的运算结果。输出保留两位小数。
输入样例
2+2=
20*(4.5-3)=
=
输出样例
4.00
30.00
代码
#include<iostream>
#include<cstring>
#include<string>
#include<iomanip>
#include<stack>
using namespace std;
char Precede(char a,char b){
if(a=='('&&b==')' ||a=='='&&b=='=')
return '=';
else if(a=='('||a=='='||b=='('||((a=='+'||a=='-')&&(b=='*'||b=='/')))
return '<';
else
return '>';