我有以下问题:我有一个文件,假设file1.dat包含以下数据:
1 2
3 1
2 1
1 3
3 2
我想用 C 编写一个程序,从这个文件中读取并在一个新文件中创建一个 NxN 矩阵,如果矩阵的第 i 个和第 j 个元素都包含在file1.dat中,则为 1,否则为 0 . 在这种情况下,我将有一个 3x3 矩阵,例如
0 1 1
1 0 0
1 1 0
对我来说,困难是要让计算机清楚地知道file1.dat中的数字是矩阵元素的坐标,它应该在其中放置 1,而在其他站点中放置 0。
根据其中一位用户的建议,我尝试了以下代码:
#include <stdio.h>
#define N 131827
int main(void){
int x,y;
int matrix[N][N];
FILE *ifp = fopen("file1.dat", "r");
FILE *ofp = fopen("matrice_A_1.dat", "w");
while(fscanf(ifp, "%d %d", &x, &y) != EOF){
x--;
y--;
matrix[x][y] = 1;
}
fclose(ifp);
for(x=0; x<N; x++){
for(y=0; y<N; y++){
fprintf(ofp, "%d ", matrix[x][y]);
}
fprintf(ofp, "\n");
}
fclose(ofp);
return(0);
}
但我使用了另一个131827 行(和 2 个列)的 file1.dat,但它给了我一个分段错误错误。有什么帮助吗?