簡単な方法を使って2次元配列に数値データを格納(初期化)してみましょう
てんC
「さきほど
2次元配列に数値を格納しましたが
もっと簡単に数値データを格納できるversionをご紹介いたしましょう。
先程の2次元配列のプログラムでは
次のように配列変数に数値データを格納していきましたが
👇
#include <iostream>
using namespace std;
int main(){
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;
cout<<hairetu [0][0]<<"\n";
cout<<hairetu [0][1]<<"\n";
cout<<hairetu [0][2]<<"\n";
cout<<hairetu [1][0]<<"\n";
cout<<hairetu [2][1]<<"\n";
cout<<hairetu [3][2]<<"\n";
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 } };
とかきかえて
#include <iostream>
using namespace std;
int main()
{
int hairetu[2][3] = { { 1,2,3 },{ 4,5,6 } };/*👈ここの部分ですね😊*/
cout << hairetu[0][0] << "\n";
cout << hairetu[0][1] << "\n";
cout << hairetu[0][2] << "\n";
cout << hairetu[1][0] << "\n";
cout << hairetu[1][1] << "\n";
cout << hairetu[1][2] << "\n";
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}};
のように
2次元配列が初期化された場合
2次元配列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次元配列hairetuの簡単な初期化方法である
👇
int hairetu[2][3]={{1,2,3},{4,5,6}};
を実行して
2次元配列hairetuに
数値データ1,2,3,4,5,6を格納していきますが
int hairetu[2][3]={{1,2,3},{4,5,6}};
の
{{1,2,3},{4,5,6}}はどのような規則にしたがって
構成されているのでしょうか?
2次元配列宣言
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次元配列hairetuを初期化するための数値データを格納するいれものが完成しました。
ここで先程と同様に
一番左の{ }は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の場所に
希望の数値データを格納していくことによって
hairetuの2次元配列宣言、初期化
int hairetu[5] [2]={{〇,〇},{〇,〇},{〇,〇},{〇,〇},{〇,〇}};
は終了します。
こんな感じに(^^)/
👇
int hairetu[5][2]={{1,7},{8,4},{5,55},{8,9},{10,120}};
👆
こんな感じに(^^)/
このとき
2次元配列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
俺のことをぉぉぉぉぉ~~~」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます