P1-1449
欢迎进入@shuai:后缀表达式;
题目描述
所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。
如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。
输入输出格式
输入格式:
输入:后缀表达式
输出格式:
输出:表达式的值
输入输出样例
输入样例#1:
3.5.2.-*7.+@
输出样例#1:
16
源代码来了,,,,
#include<bits/stdc++.h>
using namespace std;
stack<int>q;
string c;
int main(){
cin>>c;
int a=0,b=0;
int i,j;
for(int k=0;k<c.length();k++){
if(c[k]=='@'){
break;
}
else if(c[k]=='.'){
q.push(a);
b=0,a=0;
}
else if(c[k]<='9'&&c[k]>='0') {
a=b*10+c[k]-'0';
b=a;
}
else{
if(c[k]=='+') i=q.top(),q.pop(),j=q.top(),q.pop(),q.push(j+i);
if(c[k]=='-') i=q.top(),q.pop(),j=q.top(),q.pop(),q.push(j-i);
if(c[k]=='*') i=q.top(),q.pop(),j=q.top(),q.pop(),q.push(j*i);
if(c[k]=='/') i=q.top(),q.pop(),j=q.top(),q.p