这个输入如何导致输出**4 *2
?我不明白。
int i, j;
for (i = 2; i > 0; i--)
{
for (j = 0; j < i; j++)
printf("*");
printf("%d ", i+j);
}
这个输入如何导致输出**4 *2
?我不明白。
int i, j;
for (i = 2; i > 0; i--)
{
for (j = 0; j < i; j++)
printf("*");
printf("%d ", i+j);
}
的值i
首次为 2。所以,
for (j = 0; j < i; j++)
printf(“*”);
打印 2*
秒。当 j 变为 2 循环中断和
printf(“%d “, i+j);
打印4
。
对于 的下一次迭代for (i = 2; i > 0; i--)
,i
现在是 1
。
for (j = 0; j < i; j++)
printf(“*”);
打印 1 *
。当 j 变为 1 时,循环中断并且
printf(“%d “, i+j);
打印2
。
因此**4*2
。并且请为您编写的琐碎程序缩进您的代码,否则您会一直感到困惑。
i=2
和j=0
while j <2
=>> 2 次 * 通过 printf(“*”);
j=2
(因为j++
(2次))
printf(“%d “, i+j);
2+2
那么此时的输出是**4
i=1
and j=0
(restart j)
while j<1
=>> 1 time * by printf(“*”);
j=1
(因为j++
(1次))
printf(“%d “, i+j);
1+1
那么此时的输出是**4 *2
为清楚起见,修改了代码:
int i, j;
for (i = 2; i > 0; i--)
{
for (j = 0; j < i; j++){
printf("*");
}
printf(“"%d ", i+j);
}
1.for
通过设置 i=2 开始
2.内循环通过设置j=0开始
3.打印*
输出: *
4.递增 j ( j=1 )
5.打印*
输出: **
6.递增 j ( j=2 )
7.内部for循环完成
输出:**4
减量 i。现在我 = 1
内循环通过设置 j=0 开始
打印*
输出:**4 *
内循环完成
输出:**4 *2
外循环动作
最终输出 = **4 *2