C:请大家帮我解读99乘法表

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:56:00
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d ",j,i,j*i);
printf("\n");
}
getch();
}

/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
这个结果是怎么循环的啊
输出结果第二行:1*2=2 2*2=4这里,j++不是已经2了,怎么还有1*2=2呀??

我说的也不太明白,总的来说是我看不懂这个循环,希望有热心的朋友帮我解读一下,
谢谢,
谢谢大家的热心帮助!!

j是在第二个循环里的 每次运行for(j=1;j<=i;j++)时 j都被重新赋值为1 第二行的时候就应该先j=1 输出 一组数据再j=2输出一组数据

简单的循环,先执行第一个for,在第一个for中i为1时,执行第二个for,将第二个for中的j从1到i循环一遍,然后当第一个for中i为2时,在同样执行第二个for,同样将第二个for中的j从1到i循环一遍,后面都一样.........

for()语句的表达式有三个,执行次序是先执行表达式1,之后判定表达式2 ,若为非零,就执行循环体,之后执行表达式3,之后又判定表达式2,若非零又执行循环体,之后执行表达式3,表达式2...,若表达式2为0,则循环结束。你的问题是双for循环,每一个i,j都要先赋值1,然后判定小于i,执行循环体,j++,...

你可以先单独的看第2个循环
for(j=1;j<=i;j++)
printf("%d*%d=%d ",j,i,j*i);
先假设i=3,那么将输出:
1*3=3 2*3=6 3*3=9
这个循环看懂了第二步就相当于把1到9分别赋给i 执行上面这个循环,此时这个赋值过就是一个循环。
for(i=1;i<=9;i++)