好久没写代码了,这种100行的竟然RE了好几次,真是智商捉急~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
呐,本题分两步进行。
我是先用栈op来完成中缀到后缀表达式的转换,再用另外一个栈cal来计算后缀表达式的值。
上代码:
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <string>
#include <stack>
#include <vector>
using namespace std;
#define MAXSIZE 610
#define IS_NUM(ch) (ch >= '0' && ch <= '9')
#define IS_OP(ch) (ch == '+' || ch == '-' || ch == '*' || ch == '/')
string str;
stack<char> op;
stack<int> cal;
vector<string> post;
int prior(char ch) {
if (ch == '+' || ch == '-') return 0;
else return 1;
}
void post_add(char tchar) {
char tmp[2];
tmp[0] = tchar; tmp[1] = '\0';
string s_tmp(tmp);
post.push_back(s_tmp);
}
void make_post() {