如何运用大一C语言基础编写简单带括号的四则运算?

2024-11-24 21:46:16
推荐回答(2个)
回答1:

利用堆栈将中缀表达式转换为后缀表达式计算。简单给你讲一下算法:
1.从中缀表达式中逐字符读入操作数
2.若操作数为数字,直接输出到后缀表达式队列
3.若操作数为左括号(,将其压栈
4.若操作数为加减乘除运算符,将其与栈顶元素比较:
①操作数优先级高于栈顶元素,则将操作数压栈;
②操作数优先级等于或低于栈顶元素,先将栈顶元素出栈,然后将操作数压栈。
5.若操作数为右括号),从栈顶元素开始出栈,直到遇到左括号(为止,左括号也出栈。若直到栈底仍然没有发现左括号,返回表达式匹配错误(说明右括号过多)
6.表达式读取完毕,开始将栈中所有剩余元素出栈。若出栈过程中发现有左括号,返回表达式匹配错误(说明左括号过多)
除了左括号以外,所有出栈的元素都进入到后缀表达式队列中。
7.根据后缀表达式计算算式结果。

回答2:

运算顺序:先做括号里的,再做乘除,最后做加减。