int k,s,j;
for(k=2;k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++)
s=s+j;
}
printf("%d",s);
输出的结果是10,为什么啊!
你的s=1定义在第一个循环里,当第二个循环结束,再进行第一个循环时,s又被赋值为1
内循环的s每次都从1开始,所以只需要算外循环的最后一次就可以了,
k = 2 ,k< 6成立,执行循环,然后k++,k++ 结果是k = 4;
k <6成立,执行循环, k++,k++ 结果是k = 6,k<6不成立
所以外循环的最后一次执行时k = 4,此时执行内循环:
s = 1;
for(j = 4;j<6;j++)
s = s+j;
也就是 s = 1 + 4 + 5 =10
相当于 s=1+4+5