c 语言~古怪问题~

来源:百度知道 编辑:UC知道 时间:2024/06/02 04:11:39
1. x=y=0;
while(x<15) y++, x+=++y;
printf("%d,%d",y,x);
我知道答案是8,20但是我怎么也算不出来啊~~高手明试~
2.int n=0;
while(n++<=2);printf("%d",n);
这个答案是4,为什么呢?

第一题:一共4次循环
y++ x ++y
第1次循环 1 2 2
第2次循环 3 6 4
第3次循环 5 12 6
第4次循环 7 20 8
此时 x=20 跳出循环 所以结果是 8,20

第二题:n为3的时候,循环退出
注意n++ 执行过程是先判断大小后自加
所以n=4

1.
第1步后y=2,x=2
第2步后y=4,x=6
第3步后y=6,x=12
第4步后y=8,x=20
2.
因为当n==3的时候,循环应该会推出
但是由于
while(n++<=2);此时的n==3时候是会退出的,但是n++还是会执行,所以最后n等于4