您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
C语言课设想写一个简易计算器,但是在运算符优先级这里卡了两天,请问该用什么方法解决运算符优先级?
括号,表达式,算式C语言课设想写一个简易计算器,但是在运算符优先级这里卡了两天,请问该用什么方法解决运算符优先级?
发布时间:2019-02-08加入收藏来源:互联网点击:
C语言课设想写一个简易计算器,但是在运算符优先级这里卡了两天,请问该用什么方法解决运算符优先级?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
数字/运算符双堆栈,从右往左解析算式。
回答于 2019-09-11 08:43:50
这个有相应的算法的,前缀表达式,可以去括号等等。大致是2+2变换成+22,搜下百度,很全的。
回答于 2019-09-11 08:43:50
栈,这个我们平时作业里写过,就是通过进栈出栈来设计,遇到乘法和除法就出栈
回答于 2019-09-11 08:43:50
后缀表达式,运用栈。一个栈存储数据,另一个存储运算符和括号。
回答于 2019-09-11 08:43:50
这个很简单,如果不考虑括号的话,我们先对算式进行项解析,既按最低优先级把算式分解为因子和算法,然后遍历因子进行求值,最后根据因子间算法进行最后求值。
例如 对于算式"1+2*3-4/5"
我们先按+-号将该算式分解为["+1","+2*3","-4/5"],然后依次求值并合并即可得到最后的答案。
回答于 2019-09-11 08:43:50
先乘除后加减,[呲牙],用堆栈之类的方法,碰到加减就压栈,碰到乘除就先计算了,然后压栈。有括号的复杂点,子循环一下。
回答于 2019-09-11 08:43:50
中缀表达式
回答于 2019-09-11 08:43:50
肯定用逆波兰表达式啊,先用堆栈转变逆波兰,然后直接弹栈计算就行了。任何优先级都能变成扁平的计算。多查查资料就知道了。
回答于 2019-09-11 08:43:50
1、搞清什么是“表达式”。
2、边输入边计算。
回答于 2019-09-11 08:43:50
先获得运算式的字符串组合,然后查找里面成对的括号,先处理最内层成对的括号内的运算式。
对于没有括号的运算式,先查找里面的乘除运算符号,然后查找运算符号两侧的数字。处理完所有的乘除后处理加减
循环运行,直到整个字符串被遍历
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |