如果为 :int x=5;sprint("%d,%d",++x * ++x * ++x * --x,++x);
应为:2744,8
因为:7×7×8×7= 2744;

解决方案 »

  1.   

    int x=5;sprint("%d,%d",++x * ++x * ++x * --x,++x);my answer is :printf("%d %d", 7*8*9*8,6);^-^
      

  2.   

    执行顺序:
    动作    结果存放位置      变化值
    ++x---->x                x=6
    ++x---->x                x=7
    x*x---->中间变量(设为y)  x=7  y= x*x = 7*7 = 49      
    ++x---->x                x=8
    x*y---->y                x=8 y =y*x = 49*8
    --x---->x                x=7够明白了吧!给我加分把,你可以结帐了     ^_^
    x*y---->y                y= y*x=49*8*7=............
      

  3.   

    这实际上是某考核中的一道题目,答案已经公布。解答是这样的:
    int i=5;sprint("%d,%d",++x * ++x * ++x * --x,++x); 
    首先处理第二个参数“++x"-->x=6;
    再处理第一个参数,并由左向右处理,以一个*为界,即先处理++x * ++x,在这个处理中,x开始一为6,两次++后为8,再做*,为64;
    在处理后面的++x,为9,再处理*,结果得到64 * 9;
    在处理--x,为8,处理*,最后得到64 * 9 *8;
    结果:4608,6;谢谢各位。