我正在尝试从 .txt 文件中读取的数据创建一个二维数组。
'data.txt' 中的数据如下所示:
A;B;4
A;C;5
B;C;8
假设它是对称的。
有没有办法创建一个二维矩阵 [i][j] 并在 d[i][j] = value 中打印?
感谢您的意见/建议。
我正在尝试从 .txt 文件中读取的数据创建一个二维数组。
'data.txt' 中的数据如下所示:
A;B;4
A;C;5
B;C;8
假设它是对称的。
有没有办法创建一个二维矩阵 [i][j] 并在 d[i][j] = value 中打印?
感谢您的意见/建议。
当在编译时知道维度时,二维数组很有用。如果是这种情况,其他答案可能会很有用。如果没有,二维数组不适合您。
我建议使用一个简单的一维数组,分配 ( malloc
) 以具有 n*n 条目。
然后,要访问单元格 i/j,请使用array[i*n+j]
.
另一种方法是分配一个指向数组的指针数组。创建它更复杂,但您可以将其作为array[i][j]
.
int tda[3][3];
tda[1][2] = 'x';
您还可以将 malloc 用于动态大小的数组。
正如你所写:
#include <stdio.h>
#define N 4
int main(int argc, char **args) {
int A[N][N], i, j;
for (i = 0; i < N; i++)
for (j = 0 ; j < N; j++)
A[i][j] = i + j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf("%d ", A[i][j]);
printf("\n");
}
}