簡単な方法を使って2次元配列に数値を格納(初期化)してみましょう
てんC
「さきほど
2次元配列に数値データを格納しましたが
もっと簡単なversionをご紹介いたしましょう。
先程の2次元配列のプログラムでは
次のように配列変数に数値データを格納していきましたが
👇
#include <stdio.h>
int main(void)
{
int hairetu[2][3];
hairetu [0][0]=1;
hairetu [0][1]=2;
hairetu [0][2]=3;
hairetu [1][0]=4;
hairetu [1][1]=5;
hairetu [1][2]=6;
printf("%d\n",hairetu [0][0]);
printf("%d\n",hairetu [0][1]);
printf("%d\n",hairetu [0][2]);
printf("%d\n",hairetu [1][0]);
printf("%d\n",hairetu [1][1]);
printf("%d\n",hairetu [1][2]);
return 0;
}
もっと簡単に
#include <stdio.h>
int main(void)
{
int hairetu[2][3]={{1,2,3},{4,5,6}};/*👈ここの部分ですね😊*/
printf("%d\n",hairetu [0][0]);
printf("%d\n",hairetu [0][1]);
printf("%d\n",hairetu [0][2]);
printf("%d\n",hairetu [1][0]);
printf("%d\n",hairetu [1][1]);
printf("%d\n",hairetu [1][2]);
return 0;
}
と記述して
配列変数に数値データを代入する
ことができます。
int hairetu[2][3];
hairetu [0][0]=1;
hairetu [0][1]=2;
hairetu [0][2]=3;
hairetu [1][0]=4;
hairetu [1][1]=5;
hairetu [1][2]=6;
の部分が
int hairetu[2][3]={{1,2,3},{4,5,6}};に変更されていますね。
int hairetu[2][3]={{1,2,3},{4,5,6}};
のように配列変数が初期化された場合
配列hairetuの
6つの配列変数
hairetu [0][0]
hairetu [0][1]
hairetu [0][2]
hairetu [1][0]
hairetu [1][1]
hairetu [1][2]
に
{{1,2,3},{4,5,6}};の左から順に
hairetu [0][0]=1;
hairetu [0][1]=2;
hairetu [0][2]=3;
hairetu [1][0]=4;
hairetu [1][1]=5;
hairetu [1][2]=6;
と
このような順序で数値データが格納されていきます。
💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦
この
hairetu [0][0]
hairetu [0][1]
hairetu [0][2]
hairetu [1][0]
hairetu [1][1]
hairetu [1][2]
の並び方には規則性があります。
よ~く観察してみると
00
01
02
10
11
12
と
00から12へ昇順に少しづつ数値がおおきくなっています。
00
10
01
11
02
12
のように10の次が01で小さくなったり、11の次が02となったりと
ランダムな並び方にはなっていません。
💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦💦
それでは、
実際にint hairetu[2][3]={{1,2,3},{4,5,6}};のように
簡単に配列変数に数値データを格納する方法をつかって
2次元配列宣言をおこない
数値データを2次元配列に格納する仕組みを
まなんでいきましょう。
まず はじめに
今の例と同じく
2次元配列 int hairetu[2][3]に簡単な数値格納方法をつかって
数値データ 1,2,3,4,5,6 を格納していきますが
int hairetu[2][3]={{1,2,3},{4,5,6}};の
{{1,2,3},{4,5,6}}はどのような規則にしたがって
構成されているのでしょうか?
int hairetu[2][1]
int hairetu[5][8]
int hairetu[3][6]
などでは どのように この簡略化した方法
つまり
この{{1,2,3},{4,5,6}}のような表現方法を使って
配列変数に
数値データを格納できるのでしょうか?
簡単に配列変数に数値データを格納する方法は次の手順によって作成されます
まず
2次元配列宣言int hairetu[2][3]の[2]により
{ }{ }を2つ作ります。
そして
2次元配列宣言int hairetu[2][3]の[3]により
{ }のなかに3つ数値を格納する場所を確保していきます。
こんな感じです。{〇,〇,〇}{〇,〇,〇}
そして
左の{ }は0番目、右の{ }は1番目と順番をつけて
{ }のなかの〇は左から順に0番目、1番目、2番目と順番をつけると
00なら
{◎,〇,〇}{〇,〇,〇}の◎の位置
01なら
{〇,◎,〇}{〇,〇,〇}の◎の位置
02なら
{〇,〇,◎}{〇,〇,〇}の◎の位置
10なら
{〇,〇,〇}{◎,〇,〇}の◎の位置
11なら
{〇,〇,〇}{〇,◎,〇}の◎の位置
12なら
{〇,〇,〇}{〇,〇,◎}の◎の位置
の場所が対応してきます。
そして
{〇,〇,〇},{〇,〇,〇}
の
00の位置に1
01の位置に2
02の位置に3
10の位置に4
11の位置に5
12の位置に6
を格納して
外側を{}で囲む次のような形
{{〇,〇,〇},{〇,〇,〇}}の表記に
エレガントに仕上げると
{{1,2,3},{4,5,6}}
が完成します
{{1,2,3},{4,5,6}}を用いれば
配列宣言
int hairetu[2][3]
を
int hairetu[2][3]={{1,2,3},{4,5,6}};
と初期化することができます
このとき
00の位置に1
01の位置に2
02の位置に3
10の位置に4
11の位置に5
12の位置に6
を格納していますが
これは
hairetu[0][0]=1;
hairetu[0][1]=2;
hairetu[0][2]=3;
hairetu[1][0]=4;
hairetu[1][1]=5;
hairetu[1][2]=6;
のように配列変数に数値を格納することに対応しています。
数値を格納する場所をかえて
00の位置に3
01の位置に2
02の位置に1
10の位置に5
11の位置に4
12の位置に6
を格納して仕上げると
{{3,2,1},{5,4,6}}
が生成されます
{{3,2,1},{5,4,6}}
を用いれば
配列宣言
int hairetu[2][3]
を
int hairetu[2][3]={{3,2,1},{5,4,6}};
と初期化することができます
このとき
hairetu [0][0]=3;
hairetu [0][1]=2;
hairetu [0][2]=1;
hairetu [1][0]=5;
hairetu [1][1]=4;
hairetu [1][2]=6;
のように
配列変数に数値が格納されています
いかがでしたか?
もうひとつ
別の2次元配列宣言
int hairetu[5][2]をおこない
生成される配列変数
hairetu[0][0]
hairetu[0][1]
hairetu[1][0]
hairetu[1][1]
hairetu[2][0]
hairetu[2][1]
hairetu[3][0]
hairetu[3][1]
hairetu[4][0]
hairetu[4][1]
に1つずつ数値データを格納するのでなく
簡単な数値データ格納方法をつかって
hairetu[0][0]
hairetu[0][1]
hairetu[1][0]
hairetu[1][1]
hairetu[2][0]
hairetu[2][1]
hairetu[3][0]
hairetu[3][1]
hairetu[4][0]
hairetu[4][1]
に
数値データを格納、初期化していきましょう。
int hairetu[5][2]の[5]から
まず{ }を5つ
このように
{ } { } { } { } { }
作ります。
次に
int hairetu[5][2]の[2]から
{ }の中に
2つ数値を格納する場所〇を確保していきます。
{〇,〇} {〇,〇} {〇,〇} {〇,〇} {〇,〇}
外側を{}で括ってコンマで形を整えて
int hairetu[5][2]={{〇,〇},{〇,〇},{〇,〇},{〇,〇},{〇,〇}};
と
2次元配列の配列変数に数値データを格納するいれものが完成しました。
ここで先程と同様に
一番左の{ }は0番目
その隣の右の{ }は1番目
その隣の右の{ }は2番目
その隣の右の{ }は3番目
その隣の右の{ }は4番目
と順番をつけて
{ }のなかの〇は左から順に0番目、1番目と順番をつけると
31なら
int hairetu[5] [2]={{〇,〇},{〇,〇},{〇,〇},{〇,◎},{〇,〇}};
の◎の部分が
20なら
int hairetu[5] [2]={{〇,〇},{〇,〇},{◎,〇},{〇,〇},{〇,〇}};
の◎の部分が対応してきます。
そして数値データを格納できる場所は
00
01
10
11
20
21
30
31
40
41
の計10個存在しています。
あとはこれらの00から41の場所に
希望の数値を格納していくことによって
2次元配列
int hairetu[5][2]={{〇,〇},{〇,〇},{〇,〇},{〇,〇},{〇,〇}};
の初期化は終了します。
こんな感じに(^^)/
int hairetu[5][2]={{1,7},{8,4},{5,55},{8,9},{10,120}};
こんな感じに(^^)/
このとき
配列hairetuの8つの配列変数には
hairetu[0][0]=1;
hairetu[0][1]=7;
hairetu[1][0]=8;
hairetu[1][1]=4;
hairetu[2][0]=5;
hairetu[2][1]=55;
hairetu[3][0]=8;
hairetu[3][1]=9;
hairetu[4][0]=10;
hairetu[4][1]=120;
と数値データが格納されています。」
マックス 「いやあ、全然出番なかったなあ。 なので、でてきたぜぇ」
てんC 「マックスさん 2次元配列についてはどうおもわれますか?」
マックス 「そう・・・
かまって、かまって motto
俺のことをぉぉぉぉぉ~~~」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます