.txt ファイルから読み取ったデータから 2D 配列を作成しようとしています。
「data.txt」のデータは以下のようになります。
A;B;4
A;C;5
B;C;8
対称であると仮定します。
2D マトリックス [i][j] を作成し、d[i][j] = 値で出力する方法はありますか?
コメント/提案をお待ちしております。
.txt ファイルから読み取ったデータから 2D 配列を作成しようとしています。
「data.txt」のデータは以下のようになります。
A;B;4
A;C;5
B;C;8
対称であると仮定します。
2D マトリックス [i][j] を作成し、d[i][j] = 値で出力する方法はありますか?
コメント/提案をお待ちしております。
2D配列は、コンパイル時に次元がわかっている場合に役立ちます。この場合、他の回答が役立つ場合があります。そうでない場合は、2D配列は適していません。
malloc
n * n個のエントリを持つように割り当てられた()の単純な1D配列を使用することをお勧めします。
次に、セル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");
}
}