/ Vijos / 讨论 / 分享 /

后缀表达式的值

//请大神看一下代码,为啥在编译器里运行正确,提交的时候编译错误
#include<iostream>
#include<cstring>
#include<stack>
using namespace std;
char a[300];
stack<int>p;
void sta()
{
int i,s,b,c;
p.push('#');
for(i=0;a[i]!='@';i++)
{
if(a[i]=='+')
{
b=p.top();
p.pop();
c=p.top();
p.pop();
b+=c;
p.push(b);
}
else if(a[i]=='-')
{
b=p.top();
p.pop();
c=p.top();
p.pop();
c-=b;
p.push(c);
}
else if(a[i]=='*')
{
b=p.top();
p.pop();
c=p.top();
p.pop();
b*=c;
p.push(b);
}
else if(a[i]=='/')
{
b=p.top();
p.pop();
c=p.top();
p.pop();
c/=b;
p.push(c);
}
else if(a[i]=='.')
continue;
else
{
s=0;
while(a[i]!='.')
s=s*10+a[i++]-'0';
p.push(s);
}
}
b=p.top();
cout<<b<<endl;
}
int main()
{
gets(a);
sta();
return 0;
}

0 条评论

目前还没有评论...