下面程序输出结果是多少

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:02:56
int k,s;
for(k=0,s=0;k<10;k++,s--)
if(s>k) break;
else s+=k;
printf("(%d,%d)",k,s);

答案是(6,9)不理解 为什么啊????

for循环第一次完毕 结果是 0 0
第二次 1 0
第三次 2 1
后面依次是 3 3,4 6 ,5 10 ,6 9

注意第六次虽然是4 6了,但是s>k的判定是在k++和s——之后的,自己好好看看。
最后一次循环执行完k++和s——后跳出,程序结束。

第一次k=0,s=-1
s+=k,s=0
二次k=1,s=-2
s+=k,s=-1
三k=2s=-2
s+=ks=0
四k=3s=-1
s=2
五k=4s=1
s=5
六k=5s=4s+=ks=9
k=6执行if结束