我正在尝试读取文本文件并将数据存储在矩阵中。我在读完每一行后打印结果,似乎它正在工作,但如果我在最后打印矩阵,我的结果不一样。我找不到我做错了什么!
int main()
{
int i,j;
double value[10000][2];
FILE *archivo;
archivo = fopen("pruebas.txt","r");
if (archivo == NULL)
exit(1);
i=0;
while (feof(archivo) == 0)
{
fscanf( archivo, "%lf %lf %lf", &value[i][0],&value[i][1],&value[i][2]);
printf("%10.0f %f %f\n", value[i][0], value[i][1], value[i][2]);
i++;
}
printf("Your matrix:\n");
for(j = 0; j < i; j++)
printf("%10.0f %10.3f %10.3f\n", value[j][0], value[j][1], value[j][2]);
fclose(archivo);
return 0;
}
这是该程序的输出:
1 2 3
4 5 6
7 8 9
Your matrix:
1 2 4
4 5 7
7 8 9
答案 0 :(得分:6)
您声明double value[10000][2];
,然后访问value[i][2]
。使用[2]
声明的数组包含2个元素,索引为0
和1
。访问索引'2'会覆盖其他内存。
使用
double value[10000][3];