请解释一下这段c程序为什么是10

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:36:50
main()
{
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);
}

s,k,j都是局部变量

看最外层的循环for (k=2;k<6;k++,k++){...},要注意这里k的自增为2,也就是说k的值为2,4,6,....
所以,只需看最后一次循环的运算即可,也就是当k=4的时候。

当K=4时,J的初始值也是4,也就是循环for(j=k;j<6;j++){...}会运算两次,分别是j=4和j=5.
j=4时运算s+=j后s=1+4=5
j=5时运算s+=j后s=5+5=10
至此,整个循环完成,打印S,结果当然是10

外层第2次循环时,s=1; 内层2次循环,s+4+5=10;s=1在每次循环都执行的。

你看,每次循环s=1,所以只需看最后一个k;k每次加2,所以最后一个k=4;然后就是s累加,j可以取值4,5,故最后s=1+4+5=10