为了账号安全,请及时绑定邮箱和手机立即绑定

关于C算数运算优先级

int a = 3; b = 4;计算a+b%(a+b)/a+a*b-b该算式的运算结果

我的思路

  1. b%(a+b)

  2. b%(a+b)/a+a*b

  3.  b%(a+b)/a+a*b    +a - b


提示的计算顺序
1、a+b
2、b%(a+b)/a和a*b
3、a+b%(a+b)/a+a*b-b


求解!


正在回答

2 回答

 * / % 优先级高于 + -,并且它们的结合性都是从左向右。 但是括号括起来的部分会有更高的优先级。

所以 (a + b) 中的 a + b 先运算。

随后就是 b % (a + b) / a 中的 % / ,由于这两个的结合性是从左到右的,所以 % 先运算,随后运算 /。 同时后面的 a * b 也拥有同级的优先级,也会在这一步来运算。

最后是优先级最低的 + - 运算。同样因为左结合性,所以会依次将 a 、 b%(a+b)/a之前算出的 、 a*b之前算出的 和 b 加(减)起来。

3 回复 有任何疑惑可以回复我~
#1

羽丶 提问者

恩,您回答的很具体,我能理解运算思路,但是我想的是 a+b= 7 b%7 = 0 0/a=0 最后只需运算 a*b-b+a=12-4+3=11 ; 额, 现在能算了 , 一开始是在纠结 0/a ,以为自己思路错了. 谢了!
2015-10-03 回复 有任何疑惑可以回复我~
#2

onemoo 回复 羽丶 提问者

恩,各个子表达式会按照运算符优先级和结合性来计算,不管算出来的值是什么。
2015-10-03 回复 有任何疑惑可以回复我~
#3

COSWINNER 回复 羽丶 提问者

为什么答案是12?
2016-04-02 回复 有任何疑惑可以回复我~
#4

羽丶 提问者 回复 COSWINNER

b%(a+b)=4; 任何数余大于自身的数 ,得到的结果都是自身。
2016-04-08 回复 有任何疑惑可以回复我~
查看1条回复

 % / ,由于这两个的结合性是从左到右的,所以 % 先运算,随后运算 /N

错了吗,先%不就是0了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

关于C算数运算优先级

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信