支持 + - * / ^ ()
#include<iostream>
#include<cstring>
#include<string>
#include<stack>
#include<cmath>
#include<cstdio>
using namespace std;
stack<int> opnd; //操作数栈
stack<char> optr; //算术符栈
string expression; //存放表达式
//返回两算术符a和b的优先关系
char Compare(char a,char b)
{
if('#' == a)
{
if('#'== b)
return '=';
else
return '<';
}
if('+'== a || '-'== a)
{
if('*'== b || '/'== b || '^'== b || '('== b)
return '<';
else
return '>';
}
if('*'== a || '/'== a)
{
if('('== b || '^'== b)
return '<';
else
return '>';
}
if('^'== a)
{
// 2^3^2 相当于2^(3^2)
if('^' == b ||