合計 昨日 今日

2次元配列について

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: 補給タンク
[URL]
かけだし(1,169 ポイント)
Date: 2017年4月16日(日) 16:06
No: 1
(OFFLINE)

 2次元配列について

こんにちは、今回2次元配列について質問があって投稿させていただきました。

#include <stdio.h>

void main(){
int a[3][4];          //int型の宣言???
int m,n;            //int型の宣言
// 二次元配列に値を代入
for(m = 0; m < 3; m++){     //変数mの初期化、条件式、インクリメント
for(n = 0; n < 4; n++){    //変数nの初期化、条件式、インクリメント
a[m][n] = m+n;      //???
}
}
// 成分の表示
for(m = 0; m < 3; m++){    //変数mの初期化、条件式、インクリメント
for(n = 0; n < 4; n++){    //変数nの初期化、条件式、インクリメント
printf("%d ",a[m][n]);   //????
}
printf("¥n");        //改行処理
}
}

このプログラムなのですが、for文の中身は大体ですが内容を理解できるのです。
問題はint a[3][4];のように、添字を使っているときの部分です。
特に上記プログラムを抜粋した以下の部分……

> int a[3][4];

これはまあ、宣言ですよね。ただこれ、この部分だけ中身を変えても実行結果が変わらないんですよね。
じゃあ何のために[]の中身を宣言するのか、がまず分からないのです。
試しに[]を空白にしてみたらプログラムは動きませんでした……。

> // 二次元配列に値を代入
> for(m = 0; m < 3; m++){
> for(n = 0; n < 4; n++){
> a[m][n] = m+n;

次にこの部分。for文の内容はまあ、把握できます。
ただ、4行目の a[m][n] = m+n; の意味がわからなくて途方にくれています。
なんとなーく最初に宣言した[]の中にそれぞれmとnを代入?したというのは分かるのですが、
その後のm+nの意味がわかりません。これ、どういう意味なんでしょうか………?

Name: たいちう
[URL]
ハッカー(139,659 ポイント)
Date: 2017年4月16日(日) 16:38
No: 2
(OFFLINE)

 Re: 2次元配列について

> なんとなーく最初に宣言した[]の中にそれぞれmとnを代入?したというのは分かるのですが、
> その後のm+nの意味がわかりません。これ、どういう意味なんでしょうか………?

前半も間違ってます。
二次元配列の前に、まずは普通の一次元の配列を理解しましょう。

Name: みけCAT
[URL]
伝説なるハッカー(650,273 ポイント)
Date: 2017年4月16日(日) 19:02
No: 3
(OFFLINE)

 Re: 2次元配列について

補給タンク さんが書きました:> int a[3][4];

これはまあ、宣言ですよね。ただこれ、この部分だけ中身を変えても実行結果が変わらないんですよね。
じゃあ何のために[]の中身を宣言するのか、がまず分からないのです。

要素を何個用意するかを決めるためですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[20人]