Linux講座にようこそ。このページは「C言語プログラミング入門 - 第7章.たくさんのデータを処理するための配列」です。
今まで説明した配列は1次元配列と呼ばれるもので、表計算ソフトに例えると「行」に相当します。2次元配列になると、「列」が加わり、行と列で構成する配列ということになります。3次元以上の配列もありますが、使われることは少ないと思いますので、ここでは主に2次元配列に付いて説明します。
2次元配列を取り扱うには1つの要素に対して、行と列に対応する添字が必要です。2次元配列の場合、列に対応する添字の方が先に変化するようにメモリ上に配置されます。(一般に、次元数の多い方から先に変化するように配置されます)
2次元配列で複数の文字列を取り扱うこともできます。その場合、1つの文字列が1つの行になります。文字列の最後にヌル文字が必要なことは1次元配列の場合と同じです。
2次元配列の宣言は配列名の次に「行の要素数」と「列の要素数」をそれぞれ大括弧([と])で括って指定します。
初期値を指定する場合は初期値全体を中括弧({と})で括って、その中に行単位に中括弧で括って指定します。なお、行および、初期値は,(コンマ)で区切ります。
要素の内容を参照する場合も「行の添字」と「列の添字」をそれぞれ大括弧([と])で括って指定します。
初期値を指定する場合、各行の初期値の数は必ずしも一致させる必要はありません。つまり、行ごとに初期値の数が異なっていても良いということになります。このため、列数は単純には決まりませんので、初期値を指定した場合でも列の要素数は省略できませんので注意してください。
例1:int ar1[][4] = {{1, 2, 3, 4}, {5, 6, 7}, {8, 9}};
← 行の要素数は省略可能です
次の例では、最初の初期値の「hello」がヌル文字を含めて6文字と一番長いので、列の要素数は最低6必要です。
例2:int ar2[][6] = {{"hello"}, {"hi"}, {"bye"}};
メートル単位の長さを入力するとインチ、フィート、ヤード、尺、寸の長さに変換した値を出力します。どの単位の長さに変換するかはメニューで選択します。
$ ./ex07_5.prg 長さの変換を行います 変換する長さを入力してください(単位はメートル) ==> 2 1. インチ 2. フィート 3. ヤード 4. 尺 5. 寸 変換する単位の番号を入力してください ==> 3 2.00メートルは2.186ヤードです $
5人の方の肥満度を計算して正常・異常を判定して結果を出力すると共に、異常の人のみの値を最後に出力します。正常は18.5〜52.0の範囲で、それ以外を異常とします。
体重と身長を入力しますが、体重はキログラム、身長はセンチメートル単位で入力します。
$ ./ex07_6.prg 肥満度(BMI)の計算を行います 1. 体重(kg)と身長(cm)を入力してください ==> 67 188 1番の方の肥満度は18.96です。正常です。 2. 体重(kg)と身長(cm)を入力してください ==> 98 176 2番の方の肥満度は31.64です。異常です。 3. 体重(kg)と身長(cm)を入力してください ==> 43 156 3番の方の肥満度は17.67です。異常です。 4. 体重(kg)と身長(cm)を入力してください ==> 55 167 4番の方の肥満度は19.72です。正常です。 5. 体重(kg)と身長(cm)を入力してください ==> 75 166 5番の方の肥満度は27.22です。異常です。 肥満度が異常な方 番号 体重 身長 肥満度 2 98.00 1.76 31.64 3 43.00 1.56 17.67 5 75.00 1.66 27.22 $