题目描述
对于一个基于二元运算符的后缀表示式(基本操作数都是一位正整数),求其代表的算术表达式的值。
输入
输入一个算术表达式的后缀式字符串,以‘#’作为结束标志。
输出
求该后缀式所对应的算术表达式的值,并输出之。
示例输入
59*684/-3*+#
示例输出
57
提示
基本操作数都是一位正整数!
View Code
1 #include2 int main() 3 { 4 int top = 0 ; 5 int s, n[100] ; 6 char c ; 7 while(scanf("%c", &c), c!='#') 8 { 9 if(c>='0'&&c<='9')10 n[++top] = c - 48 ;11 else12 {13 switch(c)14 {15 case'+': s = (n[top-1])+(n[top]) ; break ;16 case'-': s = (n[top-1])-(n[top]) ; break ;17 case'*': s = (n[top-1])*(n[top]) ; break ;18 case'/': s = (n[top-1])/(n[top]) ; break ;19 }20 top-- ;21 n[top] = s ;22 }23 }24 printf("%d\n", n[top]) ;25 return 0 ;26 }
注意字符串是不能转换成整数的,单独一个数字字符可以转换为整数。 例如:字符‘0’可以转换成整数 48(十进制) 字符‘1’转换成 49 .... 字符‘9’转换成 57
i++先执行 i 在 + 1 ++i先 + 1 在执行 i