输入一行表示后缀表达式,数与数之间一定有空格隔开(可能不只一个空格),最后输入@表示输入结束。
数据保证每一步的计算结果均为不超过100000的整数
#include<iostream>
#include<cstdio>
using namespace std;
long long stk[10];
int main(){
long long i=0,now=0;
char op;
while((op=getchar())!='@'){
if(op>='0'&&op<='9'){
now=now*10;
now=now+op-'0';//允许多位数的存在&&字符转数字
}else if(op==' '&&now!=0){//空格出现即为一个数值输入结束
stk[++i]=now;//把接受的数值从下标1开始存入数组
now=0;//重置数字
//遇到运算符就开始计算
}else if(op=='+'){
stk[i-1]=stk[i-1]+stk[i];
i--;
}else if(op=='-'){
stk[i-1]=stk[i-1]-stk[i];
i--;
}else if(op=='*'){
stk[i-1]=stk[i-1]*stk[i];
i--;
}else if(op=='/'){
stk[i-1]=stk[i-1]/stk[i];
i--;
}
}
printf("%d",stk[1]);//输出数组下标为1的数值
return 0;
}