回答受付が終了しました

5人の学生の身長[m]、体重[kg]のデータをキーボードから入力して各学生のBMI値を計算し、BMI値の小さい順に表示するプログラムを繰り返し文を使って作成する方法を教えてください。

5人の学生の身長[m]、体重[kg]のデータをキーボードから入力して各学生のBMI値を計算し、BMI値の小さい順に表示するプログラムを繰り返し文を使って作成する方法を教えてください。 BMI=体重[kg]/(身長[m])^2 各学生の身長・体重・BMIについては、それぞれ1次元配列を使用すること。また、ソート関数(qsort関数など)は使用しないこと。 よろしくお願いします。

C言語関連39閲覧

回答(1件)

0

体重と身長はscanf()で受けとれば良いです その後bmi[i]にはw[i]とh[i]を用いて計算結果を入れます.ソートはバブルソートで十分かと思います. ------------------- #include <stdio.h> int main(){ int i,j; double h[5],w[5],bmi[5]; for(i=0;i<5;i++){ printf("%d人目の体重 = ", i+1); scanf("%lf", &w[i]); printf("%d人目の身長 = ", i+1); scanf("%lf", &h[i]); } // bmi計算 for(i=0;i<5;i++){ bmi[i] = w[i] / (h[i]*h[i]); } // ソート for(i=0;i<5;i++){ for(j=i;j<5;j++){ if(bmi[i]>bmi[j]){ double t=bmi[i]; bmi[i]=bmi[j]; bmi[j]=t; } } } for(i=0;i<5;i++){ printf("%f\n",bmi[i]); } return 0; } ------------------- 実行例 1人目の体重 = 70 1人目の身長 = 1.7 2人目の体重 = 60 2人目の身長 = 1.7 3人目の体重 = 50 3人目の身長 = 1.7 4人目の体重 = 80 4人目の身長 = 1.7 5人目の体重 = 90 5人目の身長 = 1.7 17.301038 20.761246 24.221453 27.681661 31.141869