a+b*(c-d)-e/f
的先序是
-+a*b-cd/f
请问这是如何推到出来的呢?
先序,我个人认为是把运算符都放最前面,但是并没有那样,字母中间还放了一些,迷茫,求解
你好呀,这个问题属于 中缀表达式 和 前缀表达式(也称波兰式)的相互转换。
以下是我的纸质演算过程。
希望能帮助到你!!!
这个问题很简单
我们用函数调用表示表达式,比如
int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
int mul(int a, int b) { return a * b; }
int div(int a, int b) { return a / b; }
比如
1+1
可以写
add(1, 1);
2+3*5可以写
add(2, mul(3, 5));
那么
a+b*(c-d)-e/f
就是
sub(add(a, mul(b, sub(c, d))),div(e, f))
我们把add sub mul div换成 + - * /,去掉括号和逗号
- + a * b - c d / e f
就是前缀了