ybt后缀表达式的值1331

#include<bits/stdc++.h>
using namespace std;
stack<long long> S;
long long x=1,a[260],n,m,t;
string s;
int main(){
	getline(cin,s);
	for(int i=0;;i++){
		if(isdigit(s[i]))t=t*10+s[i]-'0';
		else if(s[i]==' '){S.push(t);t=0;}
		else if(s[i]=='@'){cout<<S.top();return 0;}
		else
		switch(s[i]){
			case '+':n=S.top();S.pop();m=S.top();S.pop();S.push(m+n);break;
			case '-':n=S.top();S.pop();m=S.top();S.pop();S.push(m-n);break;
			case '*':n=S.top();S.pop();m=S.top();S.pop();S.push(m*n);break;
			case '/':n=S.top();S.pop();m=S.top();S.pop();S.push(m/n);break;
		}
	}
}
posted @ 2018-07-28 18:14  无言丶  阅读(262)  评论(0编辑  收藏  举报