读入一个只包含加减乘除的非负整数计算表达式,计算表达式的值,整数和运算符之间用一个空格分隔。
#include<stack>
#include<stdio.h>
using namespace std;
char str[200]; //保存表达式字符串
int mat[][5] = {
//运算符优先级矩阵,1+,2-,3*,4/,0#添加到表达式首尾。
1,0,0,0,0,
1,0,0,0,0,
1,0,0,0,0,
1,1,1,0,0,
1,1,1,0,0,
};
stack<int> op; //运算符栈
stack<double> in; //数字栈
void getOp(bool &reto, int &retn, int &i) {
//获得表达式中下一个元素,reto标识返回的数据类型,true位运算符,false位数字,retn传递返回值
if (i == 0 && op.empty()