问答详情
源自:2-13 编程练习

第二轮是怎么算出来的?

“第二轮计算后,a 为:6;b为:1;第二次计算sum为:27,sum的类型也发生变化了”第二轮中的ab是怎么算出来的?

提问者:qq_心随风动_0 2015-08-27 20:55

个回答

  • 非常OK
    2015-08-27 23:40:38
    已采纳

    第一轮的时候:a=5,b=2;

    这是第二轮的计算:sum = ( (++a) + 3 ) / (2 - (--b) ) * 3; 

    先算(++a)=++前置,先自增1,再赋值参与运算,此时(++a)=6,a由于自增1等于6;

    再算(--b)同理于上面的,先自减1,再赋值参与运算,此时(--b)=1, b 由于自减1等于1;

    所以前现有括号里算出来是sum=9/1 * 3=27

    如果改成:sum = ( (a++) + 3 ) / (2 - (b--) ) * 3; 

    先算(a++)=++后置,则是先赋值运算,然后再自增1,此时(a++)=5,a由于自增1等于6;

    再算(b--)同理于上面的,则是先是赋值运算,然后再自减1,此时(b--)=2, b 由于自减1等于1;

    所以前现有括号里算出来是sum=8/0 * 3=那么就是报错,除数为0了。

    还是改成这样吧改成这样:( (a++) + 3 ) / (2 - (--b) ) * 3; 

    a =6 b=1 sum=8/1 * 3=24


  • 小鸡爱下蛋
    2015-11-10 10:24:53

    ++前置这个地方,还是有疑问,计算不是应该从左到右,++前没有任何值,运算到这里,不会报错吗?

  • 菜鸟开始
    2015-11-10 00:21:06

    就是9*3 不要看成9/3了

  • qq_ThankGod_0
    2015-10-22 10:36:22

    第二轮是a =6 b=1 sum=9/1 * 3=27