|
沙发
楼主 |
发表于 2018-9-4 15:55:52
|
只看该作者
- #include<iostream>
- #include<stack>
- #include<cstdio>
- using namespace std;
- stack<int>s;
- int num,n1,n2;
- char ch;
- string s1;
- int main()
- {
- getline(cin,s1);
- int i=0;
- ch=s1[i];
- while(ch!='@')
- {
- if(ch>='0' && ch<='9')num=num*10+(ch-'0');
- if(ch=='.')
- {
- s.push(num);
- num=0;
- }
- if(ch=='+')
- {
- n1=s.top();
- s.pop();
- n2=s.top();
- s.pop();
- n1=n2+n1;
- s.push(n1);
- }
- if(ch=='-')
- {
- n1=s.top();
- s.pop();
- n2=s.top();
- s.pop();
- n1=n2-n1;
- s.push(n1);
- }
- if(ch=='*')
- {
- n1=s.top();
- s.pop();
- n2=s.top();
- s.pop();
- n1=n2*n1;
- s.push(n1);
- }
- if(ch=='/')
- {
- n1=s.top();
- s.pop();
- n2=s.top();
- s.pop();
- n1=n2/n1;
- s.push(n1);
- }
- ch=s1[++i];
- }
- num=s.top();
- cout<<num<<endl;
- return 0;
- }
复制代码 |
|