配列変数の中に格納されている数値の中で最も大きな数値を表示してみよう(*^_^*)💖💖

つづき→→→



#include <stdio.h>


int main(void) {


int hairetu[5];


hairetu[0] = 0;

hairetu[1] = 1;

hairetu[2] = 2;

hairetu[3] = 3;

hairetu[4] = 4;


int i;


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


printf("%d", hairetu[i]);

}

printf("\n");

//🌞改行しています


int a;


int k;


for (k = 0; k< 4; k++) {


a = hairetu[k];


hairetu[k] = hairetu[k + 1];


hairetu[k + 1] = a;



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


printf("%d", hairetu[i]);

}


printf("\n");


}


return 0;

}



ビルド実行結果


01234

10234

12034

12304

12340


ソーラー「このプログラムを実行すると


ビルド実行結果

01234

10234

12034

12304

12340



ご覧いただいてもおわかりになられますように


最終的に


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に格納されている数値は


0

1

2

3

4

から

1

2

3

4

0

に交換されました


ところで


        💖配列とfor文を用いて💖



 😊😊😊配列変数の中に格納されている数値の中で😊😊😊



 😊😊😊最も小さい数値や最も大きい数値を表示してみよう😊😊😊



というのが


今日の企画なんだよ。


例えば


int型の配列宣言


int hairetu[5];


を実行し


int型の配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


を作製したとします。


このとき


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に適当に数値を代入するとします。


5つの数値を代入することになりますが


どのような数値が代入されているかはわかりません。


このとき


配列変数に格納される数値の中で


もちろん


1番小さな数値と1番大きな数値が存在しますね。



配列とfor文を用いれば


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

のなかに格納されている数値がわからなくても


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値を


比較して


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値の中で


1番小さな数値や1番大きな数値を


簡単にコマンドプロンプト画面に表示することができるんだよ。」



アレサ「どのような数値が


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に格納されているのか分からなくても


配列とfor文を用いれば


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値を


比較して


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


に格納されている数値の中で


1番大きな数値や1番小さな数値を


コマンドプロンプト画面に表示できるのですか?」


ソーラー「そうなんだ(´▽`*)


まずは


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

数値データ

を代入しておいて


配列とfor文を用いて


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値を


比較して


一番大きな数値をコマンドプロンプト画面に


表示するプログラムを実行してみよう。



配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

にはどんな数値を代入しておこうかな?


そうだ


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

には

数値

0

1

2

3

4

代入しておくことにしよう。


この状態で


配列とfor文を用いて


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

に格納されている数値を


比較して


一番大きな数値をコマンドプロンプト画面に


表示するプログラムを実行してみたいと思います。


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

格納されている数値の中で


1番大きな数値をもとめるには


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


アレサ「


配列変数

hairetu[0]に格納されている数値

hairetu[1]に格納されている数値


を比較して


大きい方の数値を記録し


次にその数値と


hairetu[2]に格納されている数値


を比較して


大きい方の数値を記録し


次にその数値と


hairetu[3]に格納されている数値


を比較して


大きい方の数値を記録し


次にその数値と


hairetu[4]に格納されている数値


を比較して


大きい方の数値を記録すれば


その最後に記録した数値が


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

格納されている数値の中で


1番大きな数値になるのではないですか?


前のエピソードで


配列変数に格納されている数値データ同士を比較するプログラムが


用いられていましたが・・・


それが使えるのではないですか?」


ソーラー「わわ するどい・・・


そうなんだよ」


アレサ「

配列変数hairetu[0]とhairetu[1]に格納されている数値を比較するプログラムは


以下のようでした。


#include <stdio.h>


int main(void) {


int hairetu[5];


hairetu[0] = 0;

hairetu[1] = 1;

hairetu[2] = 2;

hairetu[3] = 3;

hairetu[4] = 4;




int i = 0;


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


hairetu[i] = i;


printf("%d", hairetu[i]);

}



printf("\n");


if (hairetu[0] <= hairetu[1]) {


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


}


else {


hairetu[1]=hairetu[0];


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

}


return 0;


}


ビルド実行結果


01234

1


アレサ「このプログラムでは


配列変数hairetu[0]に格納されている数値0

配列変数hairetu[1]に格納されている数値1


を比較して


大きい方の数値1がコマンドプロンプト画面に表示されました。


このとき


大きい方の数値1が


hairetu[1]


に格納されています


もし


配列変数hairetu[0]に格納されている数値が1

配列変数hairetu[1]に格納されている数値が0


だったとしても



         😊ちょうどいいことに😊



大きい方の数値1が


hairetu[1]


に格納されることになります


ということは


配列変数hairetu[1]に格納されている数値

配列変数hairetu[2]に格納されている数値


を比較する命令文


if (hairetu[1] <= hairetu[2]) {


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


}


else {


hairetu[2] = hairetu[1];


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

}


を実行したとき


            😊いつも😊


大きい方の数値が


hairetu[2]


に格納されることになります


大きい方の数値が


hairetu[2]


に格納されたのち


さらに


配列変数hairetu[2]に格納されている数値

配列変数hairetu[3]に格納されている数値


を比較する命令文


if (hairetu[2] <= hairetu[3]) {


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


}


else {


hairetu[3] = hairetu[2];


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

}


を実行しても


大きい方の数値が


hairetu[3]


に格納されることになります


大きい方の数値が


hairetu[3]


に格納されたのち


さらに


配列変数hairetu[3]に格納されている数値

配列変数hairetu[4]に格納されている数値


を比較する命令文


if (hairetu[3] <= hairetu[4]) {


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


}


else {


hairetu[4] = hairetu[3];


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

}


を実行しても


大きい方の数値が


hairetu[4]


に格納されることになります


この段階で


hairetu[4]に残った数値が


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

格納されている数値の中で


1番大きな数値になるのではないですか?」


ソーラー「な、なんと・・・みつけちゃった・・・・


・・・・・・・・・・・・


・・・・・・・・・・・・」


やったね! おめでとう アレサ(^_^)/」


アレサ「???


いえ・・・(。´・ω・)???


ありがとうございます」



ソーラー「


では


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

それぞれ

0

1

2

3

4

を代入しておいて


一番大きな数値

4


表示されるプログラムを実行してみたいと思います。


たとえ


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]

それぞれ

0

1

2

3

4


格納されていることがわかっていなくても


4



コマンドプロンプト画面に表示させることができるんだよ


#include <stdio.h>


int main(void) {


int hairetu[5];


hairetu[0] = 0;

hairetu[1] = 1;

hairetu[2] = 2;

hairetu[3] = 3;

hairetu[4] = 4;




int i = 0;


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


hairetu[i] = i;


printf("%d", hairetu[i]);

}



printf("\n");


if (hairetu[0] <= hairetu[1]) {


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


}


else {


hairetu[1] = hairetu[0];


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

}



if (hairetu[1] <= hairetu[2]) {


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


}


else {


hairetu[2] = hairetu[1];


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

}


if (hairetu[2] <= hairetu[3]) {


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


}


else {


hairetu[3] = hairetu[2];


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

}



printf("配列変数に格納されている数値で1番大きな数値は\n");


if (hairetu[3] <= hairetu[4]) {


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


}


else {


hairetu[4] = hairetu[3];


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

}


printf("です\n");


return 0;


}


ビルド実行結果


01234

1

2

3

配列変数に格納されている数値で1番大きな数値は

4

です


ソーラー「やったね


配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


格納された数値のなかで


一番大きな数値


4

表示することができたね。


ところでさっきも述べたように


このプログラムのポイントは



配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


       格納されている数値がわかっていなくても💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖💖



配列変数

hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]

hairetu[4]


格納された数値のなかで


一番大きな数値


表示することができることにあるんだよ」


アレサ「思えば不思議なプログラムですの」


ソーラー「例えば


インターネットで


スマホを買いたい場合


一番安い値段でいくらで売られているか


最安値を表示させることができるよね。


原理的には


いろいろなショップの値段が


配列変数に格納されていて


その中からもっとも安い値段が表示されるというわけなんだ


そう


このプログラムのシステムがもちいられているってわけさ」














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

作者を応援しよう!

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

応援したユーザー

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