逆波兰表达式用栈求值。用scanf("%c",&ch)读取运算符和操作数。
问题描述:
1+2*3用逆波兰表达式为:123*+。前期用字符数组记录输入的数字(0-9)和运算符,后期题目要求把每一步计算后的结果再次压入栈。假设先算出5*8=40.这个40(此时为int)怎么还原回char类型存进栈顶呢?因为先期声明的数组就是字符数组。另外如果不转换为int计算,假设用户输入了乘号*,用char类型的字符‘5’和‘8’怎么弄出个40来呢?
答
栈就用int型的呗。第一步完成得出逆波兰式后,从头到尾遍历,遇到数字压栈,遇到运算符弹栈两次,得到两个数,把两个数根据运算符进行计算后再压栈。最后栈只剩一个元素,就是计算结果值。
答
直接读就好了,这些语言基础问题,我曾经也遇到过,不过上百度会知道的快一些。