问答详情
源自:3-4 练习题

写能写出来,就是不知道到底先运算哪个,后运算哪个的。看不懂

#include <stdio.h>

 

int main()

 

{

 

int a=3;

 

int b=4;

 

int r;

 

 

 

r=a+b%a-b/a+a*b-a++;

 

printf("r=%d\n",r);

 

printf("a=%d\n",a);

 

return 0;

 

}



问题:a+b%a-b/a+a*b-a++

这个到底是咋运算的。看不懂呃。头晕脑胀的。

提问者:bearlala 2015-01-27 10:47

个回答

  • 凉宫落寒
    2015-01-27 12:20:07
    已采纳

    先乘除后加减,从左到右运算。

    相当于:

    3+4%3-4/3+3*4-3;
    a = a + 1;


  • 自学丿成才
    2015-05-08 18:14:02

    我想问一下这个b/a为什么=1

  • Q_千年老妖
    2015-03-05 01:22:56

    a++的意思是,把先a带入算式,等到算完所有的之后——,然后再把a拿过来加加,这种类型的题目是初学c语言的易错点和难点。

  • onemoo
    2015-01-27 15:19:08

    这个题有问题,结果是undefined。

    在进行等号右侧这一系列运算时,无法确定a++这一操作什么时候将a的值加一。唯一能够确定的是在这一语句结束后,肯定a自增一了。