配列変数の中に格納されている数値の中で最も大きな数値を表示してみよう(*^_^*)💖💖
以前のエピソードのつづき→→→
#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[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
が
格納されていることがわかっていなくても
どのような数値が
配列変数
hairetu[0]
hairetu[1]
hairetu[2]
hairetu[3]
hairetu[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]
に
格納された数値のなかで
一番大きな数値
を
表示することができることにあるんだよ」
アレサ「思えば不思議なプログラムですの」
ソーラー「例えば
インターネットで
スマホを買いたい場合
一番安い値段でいくらで売られているか
最安値を表示させることができるよね。
原理的には
いろいろなショップの値段が
配列変数に格納されていて
その中からもっとも安い値段が表示されるというわけなんだ
そう
このプログラムのシステムがもちいられているってわけさ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます