💖💖💖配列とfor文をつかって配列変数に格納されているデータを変更してみましょう

ソーラー「


次に登場する


配列とfor文をもちいた3つ目の基本的なプログラムは



  🍋配列変数に格納されている数値データを書き換えるプログラムです🍋



まずは次のプログラムをご覧ください


#include <stdio.h>


int main(void) {


int hairetu[5]={0,1,2,3,4};


int a = 0;

for (a = 0; a < 5; a++) {


printf("%d\n",hairetu[a]);

}

return 0;

}


ビルド実行結果


1

2

3

4

5


ソーラー「このプログラムでは


生成されるint型の配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に


hairetu[0]=0;

hairetu[1]=1;

hairetu[2]=2;

hairetu[3]=3;

hairetu[4]=4;


と数値が代入されています。


もし


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に


格納される数値を


0

0

0

0

0


にしたいなら


どうしたらいいと思う?(*´▽`*)」


アレサ「


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に


格納される数値を


0

0

0

0

0

ですか?


ふ~~~むぅ


次のようなプログラムになるのではないでしょうか?


#include <stdio.h>


int main(void) {


int hairetu[5]={0,1,2,3,4};


hairetu[0]=0;

hairetu[1]=0;

hairetu[2]=0;

hairetu[3]=0;

hairetu[4]=0;



int a = 0;

for (a = 0; a < 5; a++) {


printf("%d\n",hairetu[a]);

}

return 0;

}


ビルド実行結果


0

0

0

0

0


ソーラー「


このプログラムの

👇

hairetu[0]=0;

hairetu[1]=0;

hairetu[2]=0;

hairetu[3]=0;

hairetu[4]=0;

👆

ここの箇所が記述が大変だね。


このプログラムは


配列とfor文を組み合わせれば


もっと簡単に実行できるんだよ。


では


次のプログラムをご覧ください


#include <stdio.h>


int main(void) {


int hairetu[5] = { 0,1,2,3,4 };


/*

配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に数値データ

0

1

2

3

4

を代入しました

*/


int a = 0;

for (a = 0; a < 5; a++) {


hairetu[a]=0;


printf("%d\n", hairetu[a]);


}

return 0;

}


ビルド実行結果


0

0

0

0

0


アレサ「


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値が簡単に


全部0になりましたの」



ソーラー「ははっ


そうさ


とっても簡単だね。


もし


配列変数が10000個あっても


全部の配列変数に格納されている数値を


0に変更することも簡単だね。


では


もし


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に


格納されている数値が


0

1

2

3

4

のとき


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に格納されている数値を


2倍の


0

2

4

6

8


にしたい場合


どうしたらいいと思う?」


アレサ「


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に


格納される数値を


2倍にですか?


それは


次のようなプログラムになるのではないでしょうか?


#include <stdio.h>


int main(void) {


int hairetu[5]={0,1,2,3,4};


hairetu[0]=2*hairetu[0];

hairetu[1]=2*hairetu[1];

hairetu[2]=2*hairetu[2];

hairetu[3]=2*hairetu[3];

hairetu[4]=2*hairetu[4];



int a = 0;

for (a = 0; a < 5; a++) {


printf("%d\n",hairetu[a]);

}

return 0;

}


ビルド実行結果


0

2

4

6

8


ソーラー「そうだね。


このプのグラムの


hairetu[0]=2*hairetu[0];

hairetu[1]=2*hairetu[1];

hairetu[2]=2*hairetu[2];

hairetu[3]=2*hairetu[3];

hairetu[4]=2*hairetu[4];


の部分の記述が手間取るかな?


このプログラムも


配列とfor文を組み合わせれば


もっと簡単に実行できるんだよ。


次のプログラムをご覧ください


#include <stdio.h>


int main(void) {


int hairetu[5] = { 0,1,2,3,4 };


/*

配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に数値データ

0

1

2

3

4

を代入しました

*/


int a = 0;

for (a = 0; a < 5; a++) {


hairetu[a]=2*hairetu[a];


printf("%d\n", hairetu[a]);


}

return 0;

}


ビルド実行結果


0

2

4

6

8


ソーラー「この方法なら


配列変数の数が10000個あっても


配列変数に格納されている数値を2倍に変更するのは簡単だね。


ところで


今のプログラムでは


配列変数に格納されている数値を2倍に変更するのに


for文のブロック内で


hairetu[a]=2*hairetu[a];


が実行されていました。


配列変数に格納されている数値を2倍+5にしたければ


hairetu[a]=2*hairetu[a]+5;


配列変数に格納されている数値を半分にしたければ


hairetu[a]=hairetu[a]/2;


と


いくらでも簡単に


配列変数に格納されている数値を変更することができるね。


このように


配列とfor文を使えば


配列変数に格納される数値を全部変更するのは


とってもカンタンさ(^_-)-☆」


アレサ「そうですね。 ソーラーさん(*^_^*)」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます