各位大神们,这个程序输出s是等于20,可是我左思右想就是想不透。
#include"stdio.h"
main()
{
int k,j,s=0;
for(k=1;k<15;k+=4)
for(j=3;j<=19;j+=4)
s++;
printf("%d\n",s);
}
#include"stdio.h"
main()
{
int k,j,s=0;
for(k=1;k<15;k+=4)
for(j=3;j<=19;j+=4)
s++;
printf("%d\n",s);
}
2017-02-20
外循环for(k=1;k<15;k+=4) :从1开始,每次加4,即1、5、9、13共4层。内循环for(j=3;j<=19;j+=4) :从3开始,每次加4,即3、7、11、15、18共5层。循环嵌套的规则是,进入外循环一次,便执行所有的内循环。回到这个题,进入第一次外循环,所有5层内循环都执行,每执行一层内循环s的值自增1,故执行完所有5层内循环s的值变成5(亦即执行了一层外循环)。之后便结束内循环,进入第2层外循环,此时又重复执行所有5次内循环,当执行完所有5层内循环是,s的值又加5(到这个时候s的值变成10)......以此类推,外循环4层全部执行完之后,内循环共执行了4×5=20次,故s自增了20次,故s的值就是20
举报