如何运用大一C语言基础编写简单带括号的四则运算?
3个回答
展开全部
利用堆栈将中缀表达式转换为后缀表达式计算。简单给你讲一下算法:
1.从中缀表达式中逐字符读入操作数
2.若操作数为数字,直接输出到后缀表达式队列
3.若操作数为左括号(,将其压栈
4.若操作数为加减乘除运算符,将其与栈顶元素比较:
①操作数优先级高于栈顶元素,则将操作数压栈;
②操作数优先级等于或低于栈顶元素,先将栈顶元素出栈,然后将操作数压栈。
5.若操作数为右括号),从栈顶元素开始出栈,直到遇到左括号(为止,左括号也出栈。若直到栈底仍然没有发现左括号,返回表达式匹配错误(说明右括号过多)
6.表达式读取完毕,开始将栈中所有剩余元素出栈。若出栈过程中发现有左括号,返回表达式匹配错误(说明左括号过多)
除了左括号以外,所有出栈的元素都进入到后缀表达式队列中。
7.根据后缀表达式计算算式结果。
1.从中缀表达式中逐字符读入操作数
2.若操作数为数字,直接输出到后缀表达式队列
3.若操作数为左括号(,将其压栈
4.若操作数为加减乘除运算符,将其与栈顶元素比较:
①操作数优先级高于栈顶元素,则将操作数压栈;
②操作数优先级等于或低于栈顶元素,先将栈顶元素出栈,然后将操作数压栈。
5.若操作数为右括号),从栈顶元素开始出栈,直到遇到左括号(为止,左括号也出栈。若直到栈底仍然没有发现左括号,返回表达式匹配错误(说明右括号过多)
6.表达式读取完毕,开始将栈中所有剩余元素出栈。若出栈过程中发现有左括号,返回表达式匹配错误(说明左括号过多)
除了左括号以外,所有出栈的元素都进入到后缀表达式队列中。
7.根据后缀表达式计算算式结果。
追问
能否编写一个程序让我参考一下
展开全部
运算顺序:先做括号里的,再做乘除,最后做加减。
追问
我知道,但是怎么用C语言表达出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题说的具体一些,举个例子什么的
追问
就是简单的计算器一样,输入数字计算结果,例如1+(3-1)*2会自动得5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询