using std::stack;
using std::string;
using std::cout;
using std::cin;
struct pri{
int sp; //stack priority
int xp; //expression priority
};
void get_priority(char ch,pri &p)
{
switch(ch)
{
case '+' :
case '-' :
p.sp = 1;
p.xp = 1;
break;
case '*' :
case '/' :
p.sp = 2;
p.xp = 2;
break;
case '(' :
p.sp = 0;
p.xp = 3;
break;
case ')' :
p.sp = -1;
p.xp = -1;
break;
case '#' :
p.sp = 0;
p.xp = 0;
}
}
int& do_operator(int n1,int n2,char op,int &ret)
{
switch(op)
{
case '+':
ret = n1+n2;
break;
case '-':
ret = n2-n1;
break;
case '*':
ret = n1 * n2;
break;
case '/':
ret = n2/n1;
break;
}
return ret;
}
int process()
{
int value;
stack<int> s1;
stack<char> s2;
s2.push('#');
char ch;
while(cin>>ch)
{
if(ch ==';')
break;
pri p1,p2;
if(isdigit(ch))
s1.push(ch-48);
else
{
get_priority(ch,p1);
char op = s2.top();
get_priority(op,p2);
if(p1.xp>p2.sp)
s2.push(ch);
else
{
while(s2.top()!='#'&&p1.xp<=p2.sp)
{
int num1,num2,num;
if(!s1.empty())
{
num1 = s1.top();
s1.pop();
}
else
{
cout<<"the expression is worry!";
exit(-1);
}
if(!s1.empty())
{
num2 = s1.top();
s1.pop();
}
else
{
cout<<"the expression is worry!";
exit(-1);
}
int In(char c,char *op)
{
int i=0;
while(i<7)
if(c==op[i++])
return 1;
return 0;
}
char Precede(char op,char c)
{
int pos_op;
int pos_c;
int i;
for(i=0;i<7;i++)
{
if(op==OP[i]) pos_op=i;
if(c==OP[i]) pos_c=i;
}
switch(precede[pos_op][pos_c])
{
case 1: return '>';
case 2: return '<';
case 3: return '=';
}
}
char Operate(int a,char theta,int b)
{
switch(theta)
{
case '+':return a+b-'0';
case '-':return a-b+'0';
case '*':return (a-'0')*(b-'0')+'0';
case '/':return (a-'0')/(b-'0')+'0';
}
}
main()
{
char i;
printf("\n\n\n\nOnly within 0..9 evaluation,input a expression end with symbol #:\n");
i=EvaluateExpression();
printf("\nThis expression's result is: ");
printf("%d\n\n\n\n",i-'0');
printf("\n\nWelcome to visit http://zmofun.yeah.net !");
}
这是严那个的,但我运行的时候提示C:\Program Files\Microsoft Visual Studio\MyProjects\111111111\11111111.cpp(5) : fatal error C1083: Cannot open include file: 'stack.h': No such file or directory
这是为什么呢