#include <stdio.h>
#include <math.h> // sqrt関数を使うためにインクルード
// typedefと無名構造体でBody型を定義
typedef struct {
int id;
int height;
int weight;
} Body;
int main() {
int n = 5; // メンバー数
// 構造体配列の宣言と初期化
Body data[5] = {
{1, 165, 60},
{2, 170, 68},
{3, 160, 50},
{4, 180, 75},
{5, 175, 80}
};
// 身長の低い順に整列(バブルソート)
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (data[j].height > data[j + 1].height) {
Body temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
// 整列結果の表示
for (int i = 0; i < n; i++) {
printf("ID: %d, Height: %d, Weight: %d\n", data
[i
].
id, data
[i
].
height, data
[i
].
weight); }
// 身長が高いメンバー3名の平均と標準偏差を計算
double sum = 0.0;
for (int i = n - 3; i < n; i++) {
sum += data[i].height;
}
double ave = sum / 3.0;
double variance = 0.0;
for (int i = n - 3; i < n; i++) {
variance
+= pow(data
[i
].
height - ave
, 2); }
double std
= sqrt(variance
/ 3.0);
// 結果の表示(小数1桁まで)
printf("\n平均身長: %.1f cm\n", ave
); printf("標準偏差: %.1f cm\n", std
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+IC8vIHNxcnTplqLmlbDjgpLkvb/jgYbjgZ/jgoHjgavjgqTjg7Pjgq/jg6vjg7zjg4kKCi8vIHR5cGVkZWbjgajnhKHlkI3mp4vpgKDkvZPjgadCb2R55Z6L44KS5a6a576pCnR5cGVkZWYgc3RydWN0IHsKICAgIGludCBpZDsKICAgIGludCBoZWlnaHQ7CiAgICBpbnQgd2VpZ2h0Owp9IEJvZHk7CgppbnQgbWFpbigpIHsKICAgIGludCBuID0gNTsgLy8g44Oh44Oz44OQ44O85pWwCgogICAgLy8g5qeL6YCg5L2T6YWN5YiX44Gu5a6j6KiA44Go5Yid5pyf5YyWCiAgICBCb2R5IGRhdGFbNV0gPSB7CiAgICAgICAgezEsIDE2NSwgNjB9LAogICAgICAgIHsyLCAxNzAsIDY4fSwKICAgICAgICB7MywgMTYwLCA1MH0sCiAgICAgICAgezQsIDE4MCwgNzV9LAogICAgICAgIHs1LCAxNzUsIDgwfQogICAgfTsKCiAgICAvLyDouqvplbfjga7kvY7jgYTpoIbjgavmlbTliJfvvIjjg5Djg5bjg6vjgr3jg7zjg4jvvIkKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbiAtIDEgLSBpOyBqKyspIHsKICAgICAgICAgICAgaWYgKGRhdGFbal0uaGVpZ2h0ID4gZGF0YVtqICsgMV0uaGVpZ2h0KSB7CiAgICAgICAgICAgICAgICBCb2R5IHRlbXAgPSBkYXRhW2pdOwogICAgICAgICAgICAgICAgZGF0YVtqXSA9IGRhdGFbaiArIDFdOwogICAgICAgICAgICAgICAgZGF0YVtqICsgMV0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIOaVtOWIl+e1kOaenOOBruihqOekugogICAgcHJpbnRmKCLouqvplbfjga7kvY7jgYTpoIY6XG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJJRDogJWQsIEhlaWdodDogJWQsIFdlaWdodDogJWRcbiIsIGRhdGFbaV0uaWQsIGRhdGFbaV0uaGVpZ2h0LCBkYXRhW2ldLndlaWdodCk7CiAgICB9CgogICAgLy8g6Lqr6ZW344GM6auY44GE44Oh44Oz44OQ44O8M+WQjeOBruW5s+Wdh+OBqOaomea6luWBj+W3ruOCkuioiOeulwogICAgZG91YmxlIHN1bSA9IDAuMDsKICAgIGZvciAoaW50IGkgPSBuIC0gMzsgaSA8IG47IGkrKykgewogICAgICAgIHN1bSArPSBkYXRhW2ldLmhlaWdodDsKICAgIH0KICAgIGRvdWJsZSBhdmUgPSBzdW0gLyAzLjA7CgogICAgZG91YmxlIHZhcmlhbmNlID0gMC4wOwogICAgZm9yIChpbnQgaSA9IG4gLSAzOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgdmFyaWFuY2UgKz0gcG93KGRhdGFbaV0uaGVpZ2h0IC0gYXZlLCAyKTsKICAgIH0KICAgIGRvdWJsZSBzdGQgPSBzcXJ0KHZhcmlhbmNlIC8gMy4wKTsKCiAgICAvLyDntZDmnpzjga7ooajnpLrvvIjlsI/mlbAx5qGB44G+44Gn77yJCiAgICBwcmludGYoIlxu5bmz5Z2H6Lqr6ZW3OiAlLjFmIGNtXG4iLCBhdmUpOwogICAgcHJpbnRmKCLmqJnmupblgY/lt646ICUuMWYgY21cbiIsIHN0ZCk7CgogICAgcmV0dXJuIDA7Cn0K
身長の低い順:
ID: 3, Height: 160, Weight: 50
ID: 1, Height: 165, Weight: 60
ID: 2, Height: 170, Weight: 68
ID: 5, Height: 175, Weight: 80
ID: 4, Height: 180, Weight: 75
平均身長: 175.0 cm
標準偏差: 4.1 cm