最近闲着无聊在看表达式求值,
自己做了一个整数 加减乘除的小程序
代码如下:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>
#include<cmath>
using namespace std;
int a1[7][7]={
{0,0,0,0,0,0,0},
{0,1,0,0,1,1,0},
{0,1,1,0,1,1,1},
{0,0,0,1,1,0,0},
{0,1,1,1,1,1,1},
{0,1,0,0,1,1,0},
{0,1,1,0,1,1,1},
};
int bj(char a,char b)//判断算符优先顺序
{
int i=0,j=0;
if(a=='+')i=1;if(a=='*')i=2;if(a=='(')i=3;if(a==')')i=4;if(a=='-')i=5;if(a=='/')i=6;
if(b=='+')j=1;if(b=='*')j=2;if(b=='(')j=3;if(b==')')j=4;if(b=='-')j=5;if(b=='/')j=6;
return a1[i][j];
}
int main()
{
int k;
cin>>k;
while(k--)
{
stack<double>sta1;
stack<char>sta2;
char str1[10000];
cin>>str1;
int len1=strlen(str1);
int n1=0;
sta2.push('#');
for(int i=0;i<len1;i++){