作业帮 > 综合 > 作业

写一个简单的计算器,输入一个数学表达式程序输出结果 input:8+9-2 output:15 input:-0.1*9

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/13 07:05:35
写一个简单的计算器,输入一个数学表达式程序输出结果 input:8+9-2 output:15 input:-0.1*9 output:-0.9
堆栈这个思路是不是没考虑优先级的问题,先*/后+-.如果用2个栈,一个栈放数字一个栈放符号,遇到+-先各自入栈,遇到*/先对两操作数运算,结果入栈,到最后只有栈里只有+-.但是出栈运算的话,是从后往前的+-运算,怎么解决.如8-1*3+2 按刚才的思路 结果应该为3,显然是错的.怎么处理能解决?或者换一种方法?双向的队列?
写一个简单的计算器,输入一个数学表达式程序输出结果 input:8+9-2 output:15 input:-0.1*9
给你一个思路:用堆栈(后进先出)解决些问题,如果读取的是操作数则进栈,如果是操作符则将栈顶数据出栈两次,取出两个操作数,再对操作数进行相应的运算,将运算结果出栈,最后栈顶元素出栈,即为最后运算结果.