多维数组的某些元素错误地读取零

0 c arrays

我正在尝试使用多维数组来存储数据,但是,数组的某些索引似乎没有正常工作.我得到大多数元素的正确数据,但即使读入的值不为零,它们中的一部分也将读为零.该数组最终看起来像这样:

-3.238467  -3.237679  -0.487128  -3.237634  -3.238513  -3.239868  
-3.239361  -3.238660  0.000000  -3.238610  -3.435949  -3.437109  
-3.622402  -3.621796  0.000000  -3.621911  -3.436662  -3.437587  
-3.237072  -3.236771  0.000000  -3.237329  -3.237926  -3.238605  
-3.227221  -3.227291  0.000000  -3.228477  -3.229173  -3.229775  
-3.204790  -3.205429  0.000000  -3.207087  -3.207956  -3.208255  
-2.618961  -2.621088  -2.622552  -2.623831  -2.624973  -2.625057
Run Code Online (Sandbox Code Playgroud)

即使我检查这样的值:

for(j=0; j<(num_cell_y); j++) {
    for(i=0; i<(num_cell_x); i++) {
      ...
      ...
      ...
      grid[i][j] = u_avg;
      printf("%f\n", u_avg);
      printf("%f\n", grid[i][j]);
    }
}
Run Code Online (Sandbox Code Playgroud)

我打印出两个不同的值:

-3.237675
0.000000
Run Code Online (Sandbox Code Playgroud)

有没有其他人有这种情况发生在他们身上或知道我可能错过了导致这种情况的事情?

Mah*_*esh 5

看来你需要按此顺序填充数组 -

grid[j][i] = u_avg;  // Note the indexes being reversed.
Run Code Online (Sandbox Code Playgroud)