はじめに
どうも! みなため(@MinatameT)です。
この記事で紹介するプログラムは、次の記事のプログラムを少しだけ変化させたものになります。よろしければ参考にしてみてください。
問題文
キーボードから5人分の身長を入力すると、平均身長、最も高い身長、最も低い身長を (小数第2位まで) 表示するプログラムを作成しましょう。
ただし、身長は実数値で、単位は (cm) とします。
また、「自作関数」と「配列」を使わないソースコードにしてください。
この問題について解説します。
解答例
ソースコード
#include<stdio.h>
int main(void)
{
double h1,h2,h3,h4,h5; //5人分の身長
double ave; //平均身長
double max; //最高身長
double min; //最低身長
printf("1人めの身長 (cm) >");
scanf("%lf",&h1); //h1(1人めの身長)の入力
max = h1; //今のところ、h1を最高身長とする。
min = h1; //今のところ、h1を最低身長とする。
printf("2人めの身長 (cm) >");
scanf("%lf",&h2); //h2(2人めの身長)の入力
if(h2>max) //最高身長よりh2が大きければ
{
max = h2; //最高身長をh2にする。
}
if(h2<min) //最低身長よりh2が小さければ
{
min = h2; //最低身長をh2にする。
}
printf("3人めの身長 (cm) >");
scanf("%lf",&h3); //h3(3人めの身長)の入力
if(h3>max) //最高身長よりh3が大きければ
{
max = h3; //最高身長をh3にする。
}
if(h3<min) //最低身長よりh3が小さければ
{
min = h3; //最低身長をh3にする。
}
printf("4人めの身長 (cm) >");
scanf("%lf",&h4); //h4(4人めの身長)の入力
if(h4>max) //最高身長よりh4が大きければ
{
max = h4; //最高身長をh4にする。
}
if(h4<min) //最低身長よりh4が小さければ
{
min = h4; //最低身長をh4にする。
}
printf("5人めの身長 (cm) >");
scanf("%lf",&h5); //h5(5人めの身長)の入力
if(h5>max) //最高身長よりh5が大きければ
{
max = h5; //最高身長をh5にする。
}
if(h5<min) //最低身長よりh5が小さければ
{
min = h5; //最低身長をh5にする。
}
ave = (h1+h2+h3+h4+h5)/((double)5); //平均身長の計算
printf("平均身長 = %0.2f (cm) \n",ave); //%0.2fで小数点第2位まで表示する。
printf("最高身長 = %0.2f (cm) \n",max); //%0.2fで小数点第2位まで表示する。
printf("最低身長 = %0.2f (cm) \n",min); //%0.2fで小数点第2位まで表示する。
return(0);
}
「//」より右はコメント文なので、入力しなくても構いません。
はじめは、最高身長と最低身長をh1(1人めの身長)にしておき、後から入力されるh2、h3、h4、h5の値と比較していきます。こうすることで、最終的な最高身長と最低身長を求めることができます。
平均身長は、h1、h2、h3、h4、h5をすべて入力し終えた後に、まとめて計算しています。やっていることは、身長の和を実数の5で割って、aveに代入しているだけです。
それでは、実行結果の例を確認していきます。
実行結果
1人めの身長 (cm) >158.5
2人めの身長 (cm) >177.2
3人めの身長 (cm) >160.8
4人めの身長 (cm) >155.0
5人めの身長 (cm) >170.1
平均身長 = 164.32 (cm)
最高身長 = 177.20 (cm)
最低身長 = 155.00 (cm)
このように、5人分の平均身長、最高身長、最低身長が正しく表示することができました!
課題の解説はここまでです。お疲れさまでした。