帮我算一下这个程序的解

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:36:11
int k,j,s;
for(k=2;k<6;k++,k++){
s=1;
for(j=k;j<6;j++)
s+=j;
}
printf("%d\n",s);
能具体一些!

结果显示应为 10

有两个循环嵌套,大循环为
for(k=2;k<6;k++,k++) 执行s=1;和小循环
小循环为
for(j=k;j<6;j++) 执行s+=j; 即把j的值每次都加到s里去。
每次执行大循环,都执行一遍s=1;最终结果是输出s值,所以只要看最后一次大循环就行了,因为前面不管程序把s执行成啥值了,最后一次大循环,s开始时又被强制赋值为1了。
k++有两个,即每次k增加2,最后一次大循环,k=4,
小循环里,j=k(即j=4),一直到j=5,j++。
故,运行结果: s=1+4+5=10

————————————————原创回答团成员专用标记———————————————
©原创回答团成员:smcx9527为您解答,希望对您有所帮助,谢谢。

外循环运行2次,内循环次数在递减,计数K步长为2
k=2时,只看内循环:
S=1+2+3+4+5=15
k=4时,注意for(k=2;k<6;k++,k++){……}这个循环体每次运行,S都被重新赋值为1!这里的S不是等于S=15+4+5
而是S=1+4+5
k=6时,退出外循环!!
输出S应为10