运算符的先后计算可以用栈来保存,分别有几种情况
1,当前1+2-3即优先级相同,那么可以先算前一个。
2,1+2*3这种情况我不做处理(注:我每次只选择是否处理上一个)
3,2*8+2这种情况计算前一个。
小细节太多,不说太多,有兴趣的同学留言。
输入格式:1 + 2 + 3 + 4(即运算符两边要加一个空格,不能多)。不要觉得这样是麻烦的做法,处理格式不严谨的字符串容易会发生各种各样的错误,还不如只处理一种规格定死的,反正别的转过来很容易不是。
样例 :1 + 2 + 4 * 3 / 2 + 1
1 + 2 + 4 * 3 / 0 + 1
1 + 2 + 4 * 3 / 2 + 1
输出:10
逻辑错误(被除数可能为零?)
格式错误
第三组最后一个加号前多了个空格
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
#include<stack>
#include<cstring>
#include<algorithm>
using n