1+2*3用逆波兰表达式为:123*+。前期用字符数组记录输入的数字(0-9)和运算符,后期题目要求把每一步计算后的结果再次压入栈。假设先算出5*8=40.这个40(此时为int)怎么还原回char类型存进栈顶呢?因为先期声明的数组就是字符数组。另外如果不转换为int计算,假设用户输入了乘号*,用char类型的字符‘5’和‘8’怎么弄出个40来呢?
2条回答 默认 最新
- 狂颜 2018-03-25 09:11关注
栈就用int型的呗。第一步完成得出逆波兰式后,从头到尾遍历,遇到数字压栈,遇到运算符弹栈两次,得到两个数,把两个数根据运算符进行计算后再压栈。最后栈只剩一个元素,就是计算结果值。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1