c语言高手请进!帮帮忙!谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/15 12:32:00
想问一下for的嵌套的内循环和外循环的的顺序是怎样的

例如
#include<stdio.h>
main()
{ int i,j;
for (i=1;i<=9;i++)
{for (j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
}
在这个程序中,是按这样的顺序吗?
1 先判断 i,i成立了,在运行大括号里面的内循环,在判断j

按我的理解是 i=1,i又小于9,所以自增 (变成i=2)
然后 j=1,小于等于i=1,所以也自增 (变成j=2)
所以输出1 ,再换行! (到这里,第一次循环结束)
然后 由于i=2 小于9,所以再自增(变成i=3)
再因为 j=2 小于等于 i=2 所以再自增 (j=3)
然后在第二行输出一个2,再换行!

但实际运行结果不是这样,我想问,我的理解错在那里?
我的理解是 但实际却是

1 1
2 2 2
3 3 3 3





我的理解是 第一行 一个1 第二行 一个 2 第三行 一个 3 我的理解错在那里??谢谢大家为我解答!
但实际却是 第一行 一个 1 第二行 两个2 第三行 三个 3…………

楼主,我知道你的意思了,呵呵

你没有理解for循环的过程

--------------------------------------------------

for(初始化;终止条件;变量变化)

for循环的初始化时每次进入for循环都要执行的,所以 j 始终是从 1 开始逐步递增的

具体点说:

1.i=1.....i<=9.......j=1.....j<=i......输出  1......j++.....i++

2.i=2.....i<=9.......j=1(第一次循环后j=2,但这里又被初始化成1)...j<=i...输出 22(要循环2次了)

3.....

以此类推,j每次都是从1循环,而i的值在递增,所以就是如下图那样的结果了:

每执行for (i=1;i<=9;