数据结构实验之栈三:后缀式求值
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57
提示
基本操作数都是一位正整数!
1 #include2 #include 3 int main() 4 { 5 int i=0,a[99],sum=0; 6 char c; 7 while(scanf("%c",&c)&&c!='#') 8 { 9 if(c>='0'&&c<='9')//å¦�æ��æ�¯æ�°å�ç��è¯�å°±å�¥æ �10 {11 i++;12 a[i]=c-'0';13 }14 else //å¦�æ��ä¸�æ�¯æ�°å�ç��è¯�ï¼�è¨�å¤�ä¹�æ��å°±æ�¯è¿�ç®�符15 {16 switch(c)17 {18 case '+':sum=a[i-1]+a[i];break;19 case '-':sum=a[i-1]-a[i];break;20 case '*':sum=a[i-1]*a[i];break;21 case '/':sum=a[i-1]/a[i];break;22 }23 i--;24 a[i]=sum;//å�ºæ �25 }26 }27 printf("%d\n",a[i]);28 return 0;29 }