x=y=0;while(x<15)y++,x+=++y;printf("%d,%d",y,x);结果为什么是8,20

2025-02-25 06:04:53
推荐回答(2个)
回答1:

x=y=0; //x=0,y=0;
while(x<15)y++,x+=++y;
//第一次运行:y=2,x=2;
//第二次运行:y=4,x=6;
//第三次运行:y=6,x=12;
//第四次运行:y=8,x=20;跳出循环
printf("%d,%d",y,x);//输出:8,20
//x+=++y,首先计算++y,y=y+1,再计算x=x+y。

回答2:

while(x<15)y++,x+=++y
等效于:
while(x<15){
y++;
y++;
x+=y;
}

所以结果是8,20