接受用户输入的四则运算表达式,使用栈进行表达式求值。不考虑括号
时间: 2024-02-15 16:06:13 浏览: 19
好的,我可以帮你解答这个问题。
首先,我们需要定义一个栈来存储操作数和运算符。将运算表达式按照空格分隔成一个个的单词,然后遍历这个单词列表。
对于每一个单词,如果它是一个数字,就将它压入栈中;如果它是一个运算符,就从栈中弹出两个操作数,执行相应的运算,然后将结果压入栈中。
最后,当遍历完所有单词后,栈中只剩下一个元素,这个元素就是表达式的求值结果。
具体实现可以参考下面的 Python 代码:
```python
def evaluate(expression):
stack = []
for token in expression.split():
if token.isdigit():
stack.append(int(token))
else:
b = stack.pop()
a = stack.pop()
if token == '+':
stack.append(a + b)
elif token == '-':
stack.append(a - b)
elif token == '*':
stack.append(a * b)
elif token == '/':
stack.append(a // b)
return stack.pop()
expression = input("请输入四则运算表达式:")
result = evaluate(expression)
print("结果为:", result)
```
例如,输入表达式 `3 4 + 5 *`,程序会输出 `结果为: 35`。