• ベストアンサー

2次配列の事で悩んでいます。

題名とおりプログラムの配列の事で悩んでいます。 一次配列だと (例) int a[5]={1,2,3,4,5}だとすると  a[0]=1, a[1]=2, a[2]=3だという事は何とかわかります。 でも2次配列になると全然わからなくなってしまいます。 (例)   int a[6][4] = { { 1, 2, 3, 4 }, { 5, 6, 2, 6 }, { 7, 8, 9, 10 }, { 11, 12, 13, 14 }, { 15, 16, 17, 18 }, { 19, 20, 21, 22 } }; のような2次関数があったとして      a[0][0],a[1][0],a[2][0],a[3][0] a[0][1],a[1][1],a[2][1],a[3][1] a[0][2],a[1][2],a[2][2],a[3][2] a[0][3],a[1][3],a[2][3],a[3][3] などは、int a[6][4]の中の数字にどのように対応しているのかが教えて頂けないでしょうか? できれば一つ一つ具体的に答えて頂ければ幸いです。 ずっと考えていたんですが自分ではどうしてもわかりません。  

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

a[0][0]=1,a[0][1]=2,a[0][2]=3,a[0][3]=4 a[1][0]=5,a[1][1]=6,a[1][2]=2,a[1][3]=6 のように対応します。 int a[行][列]と考えて下さい。(但し0行、0列から開始する) int a[6][4]は6行、4列 a[0行][0列]=1,a[0行][1列]=2,a[0行][2列]=3・・ a[1行][0列]=5,a[1行][1列]=6,a[1行][2列]=2・・・ となります。

noname#9792
質問者

お礼

丁寧に一つ一つ答えてくださってありがとうございます。 今まで自分で考えてみても、考えていくうちに訳がわからなくなってしまっていたのでとても助かりました。

その他の回答 (1)

  • yasuch
  • ベストアンサー率41% (27/65)
回答No.1

下記のような感じで自分でプログラムを動かして確認してみると 体感できるのではないでしょうか。 for(x=0;x<4;x++) for(y=0;y<6;y++) printf("a[%d][%d]=%d\n", y, x, a[y][x]);

noname#9792
質問者

お礼

さっそくのご回答ありがとうございます。 プログラムまで載せて下さって本当にありがとうございます。 試してみようと思います。