anjue 发表于 2020-3-11 18:13:34

S1E10关系算符和逻辑算符课后题求助。(运算符的优先级和结合性问题)

萌新有1个关于运算符的优先级和结合性的问题请教。(题目是带你学c带你飞S1E10里的)

请用小括号和数字序号体现表达式中运算符的优先顺序,并口算出表达式的值(下边假设变量 a、b、c、d 的值分别是 1、2、3、4)
C. 'a' + 'b' <= 'c' || a / b + d % c
写成:(('a' + 'b')1 <= 'c')2 || ((a / b)3 + (d % c)4)5
求值:((97 + 98) <= 99) || ((1 / 2) + (4 % 3)) == (195 <= 99) || (0 + 1) == 1
(这是小甲鱼给的答案)
但/ %的优先级不是大于+吗 为什么要从左到右先算加呢?

先谢谢各位大大啦~

anjue 发表于 2020-3-11 18:14:14

下面图是不小心放上去的,请大大们忽略~

zltzlt 发表于 2020-3-11 18:23:38

先算 / %,再算加减。a / b 和 d % c 被小括号包围起来了。

anjue 发表于 2020-3-11 18:26:00

zltzlt 发表于 2020-3-11 18:23
先算 / %,再算加减。a / b 和 d % c 被小括号包围起来了。

后面小括号是答案给的计算过程,表示计算的顺序~那就是说是答案错了吗?

拖延症大叔 发表于 2020-3-11 20:11:07

是先算的/和%后算的+啊???

对牛弹琴的三高C 发表于 2020-3-12 09:18:38

运算符的优先级和结合性不是有一张表吗?你们有没有找到啊?我现在也在找

剑御玫瑰 发表于 2020-3-12 10:47:21

E:\办公\QQ文件\2560494041\FileRecv\MobileFile\IMG_20200220_155050.jpg

剑御玫瑰 发表于 2020-3-12 10:52:01

对牛弹琴的三高C 发表于 2020-3-12 09:18
运算符的优先级和结合性不是有一张表吗?你们有没有找到啊?我现在也在找

还没有上传图片的权限{:9_234:}

hongwei8858 发表于 2020-3-12 13:03:39

先运算的/ %,
C. 'a' + 'b' <= 'c' || a / b + d % c
程序读到a+b<=c||a/b+d%c;
首先程序先读到了a+b<=c;会先计算97+98=195再计算195<=99;
下面才是||,然后a/b+d%c;||的优先级低于+-*/
计算a/b+d%c;
/和%优先级相同,结合性是左到右;
先计算a/b,再算d%c;
写成:(('a' + 'b')1 <= 'c')2 || ((a / b)3 + (d % c)4)5
求值:((97 + 98) <= 99) || ((1 / 2) + (4 % 3)) == (195 <= 99) || (0 + 1) == 1
(这是小甲鱼给的答案)
但/ %的优先级不是大于+吗 为什么要从左到右先算加呢?

hongwei8858 发表于 2020-3-12 13:05:36

小甲鱼给的答案是正确的,/%优先级大于+- 的前提是他们在一个表格式里面,否则,先读到谁计算谁。
这么简单的问题。你就懵圈了,还怎么进阶成大佬呢。

对牛弹琴的三高C 发表于 2020-3-12 13:49:29

剑御玫瑰 发表于 2020-3-12 10:52
还没有上传图片的权限

我已经找到了,谢谢

本来也是想分享出来的,我也没有上传图片的权限{:9_234:}

张冲。 发表于 2020-3-12 16:06:40

先是a/b = 1/2 = 0然后再d%c = 4%3 = 1最后 0+1 = 1,因为||的运算等级最低,所以最后再相或,就是这样啊
页: [1]
查看完整版本: S1E10关系算符和逻辑算符课后题求助。(运算符的优先级和结合性问题)