数据结构实验之栈四:后缀式求值
数据结构实验之栈三:后缀式求值
Time Limit: 1000MS Memory limit: 65536K
题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57
提示
基本操作数都是一位正整数!
1 #include<stdio.h> 2 #include<string.h> 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 }