谁能告诉这个for循环的步骤是怎样的?高分求助!

谁能告诉这个for循环的步骤是怎样的?高分求助!

#include <stdio.h>
main ()
{ int i,j,m=0;
for (i=1;i<=15;i+=4)
for (j=3;j<=19;j+=4) m++;
printf ("%d\n",m);
}
结果等于20。但我不明白两个for的步骤。如果有else我就很明白。

外层循环 当 i=1 时
for (j=3;j<=19;j+=4) m++;
j=3 时 m++ 这时 m=1
j=j+4=3+4=7 这时 m=2
j=j+4=7+4=11 这时 m=3
j=j+4=11+4=15 这时 m=4
j=j+4=15+4 这是 m=5

外层循环 当 i=i+4=1+4=5 时
for (j=3;j<=19;j+=4) m++;
j=3 时 m++ 这时 m=6
j=j+4=3+4=7 这时 m=7
j=j+4=7+4=11 这时 m=8
j=j+4=11+4=15 这时 m=9
j=j+4=15+4 这是 m=10

外层循环 当 i=i+4=5+4=9 时
for (j=3;j<=19;j+=4) m++;
j=3 时 m++ 这时 m=11
j=j+4=3+4=7 这时 m=12
j=j+4=7+4=11 这时 m=13
j=j+4=11+4=15 这时 m=14
j=j+4=15+4 这是 m=15

外层循环 当 i=i+4=9+4=13 时
for (j=3;j<=19;j+=4) m++;
j=3 时 m++ 这时 m=16
j=j+4=3+4=7 这时 m=17
j=j+4=7+4=11 这时 m=18
j=j+4=11+4=15 这时 m=19
j=j+4=15+4 这是 m=20

外层循环 当 i=i+4=13+4=17 时 ,已经大于15了,退出循环

结果 m=20

另外:
for循环下面就一条语句,所以不用加括号,也不用加else
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-04
一缩进就好看多了。写的时候注意一下格式,有好处的。老谭的书就不怎么注意格式。
for (i=1;i<=15;i+=4)
{
for (j=3;j<=19;j+=4)
{
m++;
}
}
第2个回答  2010-07-04
第2个for语句是嵌套在地一个里面的
就是第2个for要执行i次
相当于

#include <stdio.h>
main ()
{
int i,j,m=0;
for (i=1;i<=15;i+=4)
{
for (j=3;j<=19;j+=4)
{
m++;
}
}
printf ("%d\n",m);
}
第3个回答  2010-07-04
外循环 1 5 9 14 4次
内循环 3 7 11 15 19 5次

4*5 =20 m+=20次
第4个回答  2010-07-04
(1)这是个嵌套循环。第一个for执行一次则第二个for执行(19-3)/4+1=5次。
而第一个for执行了4次,而每次循环都使m加1,所以m=20.
相似回答