#include “stdio.h”
int main()
{for (k=2;k<6;k++,k++)
{s=1;
for(j=k;j<6;j++)
s+=j;}
printf("%d",s);
getch();
}
首先,每次循环s都被初始化成1了,所以前面的循环就不要去纠结了,只有最后一次循环起作用,前面不管s是多少都归零了
然后看外层循环,每次执行两遍k++,循环条件k<6,所以k只能取2和4,已经说了2的时候的值被丢弃了,只从4开始看就好
然后内层循环
j=k,从4开始,j<6,那么j只能取4和5
s最初是1,先加4,再加5,不是10吗
代码很不规范,以至于我很难猜出程序意图。
稍微修改下后的程序并未输出s=10:
#include "stdio.h"
int main()
{
for (int k = 2; k < 6; k++)
{
int s = 1;
for (int j = k; j < 6; j++)
{
s += j;
}
printf("%d\n", s);
getchar();
}
return 0;
}