题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57#include<stdio.h> #include<string.h> #include<ctype.h> int main() { char a[1000]; int i,n,s,b[1000]; scanf("%s",a); n=strlen(a); int j=-1; for(i=0;i<n;i++) if(a[i]>='0'&&a[i]<='9') { b[++j]=a[i]-'0'; } else if(a[i]=='+') { s=b[j-1]+b[j]; b[--j]=s; } else if(a[i]=='-') { s=b[j-1]-b[j]; b[--j]=s; } else if(a[i]=='*') { s=b[j-1]*b[j]; b[--j]=s; } else if(a[i]=='/') { s=b[j-1]/b[j]; b[--j]=s; } else if(a[i]=='#') printf("%d\n",b[0]); return 0; }