首页 > 解决方案 > C 编程:如何将整数数组打印为二维数组?

问题描述

我有一个整数数组: int* list = malloc((m*n) * sizeof(int));变量m,并且n是二维数组所需的维度。

我用随机数填充了我的数组并用简单的for (int i = 0; i < lines; i++) printf("%d\n", list[i]);Which打印了它:

4
5
100
7
9
3
74
1
6

我的问题是如何将数组打印为 2d 数组而不是 1d?

这是我的尝试:

for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            printf("%d", list[i]);
        }
        printf("\n");
    }

但这会打印前 n 个数字,如下所示:

444
555
100100100

让阵列的其余部分丢失在某个地方。

标签: arraysc

解决方案


第一行 ( i = 0) 应该打印元素0, 1, ... , m-1

第二行 ( i = 1) 应该打印元素m, m+1, ..., 2*m-1

i行应该打印元素m*i, m*i+1, ... , m*i+m-1

因此,您应该打印list[i*m+j]而不是list[i].

此外,您可能希望在同一行中的元素之间添加一些空格。


推荐阅读