hilsinleri @ 2017-01-26 20:24:28
如题。试了几个自编的数据,都没问题。
#include<bits/stdc++.h>
using namespace std;
stack<int>s;
string t;
void doit(char b)
{
int f1=s.top();
s.pop();
int f2=s.top();
s.pop();
switch(b)
{
case '+':
s.push(f2+f1);
break;
case '-':
s.push(f2-f1);
break;
case '*':
s.push(f2*f1);
break;
case '/':
s.push(f2/f2);
break;
}
}
int work()
{
int m=0,num=0;
char c;
c=t[m];
while(c!='@')
{
if(c>='0'&&c<='9')
{
num=num*10+c-'0';
}
else if(c=='.')
{
s.push(num);
num=0;
}
else doit(c);
c=t[++m];
}
}
int main()
{
cin>>t;
work();
printf("%d",s.top());
}
by hilsinleri @ 2017-01-26 20:25:48
问题已解决谢谢各位大神