C语言模式带来意想不到的结果

问题描述 投票:0回答:1

我正在尝试用 C 创建一个程序来绘制这个图案:

1 1 2 1 3 1
1 2 2 2 3 2
1 3 2 3 3 3
1 4 2 4 3 4
1 5 2 5 3 5

我检查了解决方案的答案。

#include <stdio.h>

int main ()
{
    int i;
    int j;
    
    for (i = 1 ; i <= 5 ; i++)
    {
        for (j = 1 ; j <= 3 ; j++)
        {
            printf("%i %i",j,i);
        }
        printf("\n");
    }
    
    return 0;

但我不明白为什么这段代码(上面)给出了之前的结果而不是这个结果:

1 2 3 1
1 2 3 2
1 2 3 3
1 2 3 4
1 2 3 5
c for-loop design-patterns nested-loops
1个回答
0
投票
1 2 3 1
1 2 3 2
1 2 3 3
1 2 3 4
1 2 3 5

如果内部循环的每次迭代都打印

j
(1, 2, 3) 的值,然后在内部循环之后打印
i
的值,则会出现此输出。然而,代码并不是这么说的。内部循环包含
printf("%i %i",j,i);
,每次调用时都会打印两个数字,一个代表
j
,另一个代表
i

© www.soinside.com 2019 - 2024. All rights reserved.