#include <stdio.h>
#include <math.h>
typedef struct {
int id;
double height;
double weight;
} Body;
int main(void) {
Body data[5] = {
{1, 165, 60},
{2, 170, 68},
{3, 160, 50},
{4, 180, 75},
{5, 175, 80}
};
int n = 5;
// 身長の低い順にソート(単純交換法)
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (data[i].height > data[j].height) {
Body temp = data[i];
data[i] = data[j];
data[j] = temp;
}
}
}
// 並べ替え後の表示
for (int i = 0; i < n; i++) {
printf("id:%d height:%.0f weight:%.0f\n", data
[i
].
id, data
[i
].
height, data
[i
].
weight); }
// 下から3名(身長が高い3人)
double sum = 0.0;
for (int i = n - 3; i < n; i++) {
sum += data[i].height;
}
double ave = sum / 3.0;
double var = 0.0;
for (int i = n - 3; i < n; i++) {
var
+= pow(data
[i
].
height - ave
, 2); }
double std
= sqrt(var
/ 3.0);
printf("\n下から3名(身長が高い3名)の平均身長:%.1f cm\n", ave
); printf("標準偏差:%.1f cm\n", std
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBkb3VibGUgaGVpZ2h0OwogICAgZG91YmxlIHdlaWdodDsKfSBCb2R5OwoKaW50IG1haW4odm9pZCkgewogICAgQm9keSBkYXRhWzVdID0gewogICAgICAgIHsxLCAxNjUsIDYwfSwKICAgICAgICB7MiwgMTcwLCA2OH0sCiAgICAgICAgezMsIDE2MCwgNTB9LAogICAgICAgIHs0LCAxODAsIDc1fSwKICAgICAgICB7NSwgMTc1LCA4MH0KICAgIH07CgogICAgaW50IG4gPSA1OwoKICAgIC8vIOi6q+mVt+OBruS9juOBhOmghuOBq+OCveODvOODiO+8iOWNmOe0lOS6pOaPm+azle+8iQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmIChkYXRhW2ldLmhlaWdodCA+IGRhdGFbal0uaGVpZ2h0KSB7CiAgICAgICAgICAgICAgICBCb2R5IHRlbXAgPSBkYXRhW2ldOwogICAgICAgICAgICAgICAgZGF0YVtpXSA9IGRhdGFbal07CiAgICAgICAgICAgICAgICBkYXRhW2pdID0gdGVtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyDkuKbjgbnmm7/jgYjlvozjga7ooajnpLoKICAgIHByaW50Zigi6Lqr6ZW344Gu5L2O44GE6aCG44Gr5Lim44G55pu/44GI44Gf44OH44O844K/77yaXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCJpZDolZCBoZWlnaHQ6JS4wZiB3ZWlnaHQ6JS4wZlxuIiwgZGF0YVtpXS5pZCwgZGF0YVtpXS5oZWlnaHQsIGRhdGFbaV0ud2VpZ2h0KTsKICAgIH0KCiAgICAvLyDkuIvjgYvjgokz5ZCN77yI6Lqr6ZW344GM6auY44GEM+S6uu+8iQogICAgZG91YmxlIHN1bSA9IDAuMDsKICAgIGZvciAoaW50IGkgPSBuIC0gMzsgaSA8IG47IGkrKykgewogICAgICAgIHN1bSArPSBkYXRhW2ldLmhlaWdodDsKICAgIH0KICAgIGRvdWJsZSBhdmUgPSBzdW0gLyAzLjA7CgogICAgZG91YmxlIHZhciA9IDAuMDsKICAgIGZvciAoaW50IGkgPSBuIC0gMzsgaSA8IG47IGkrKykgewogICAgICAgIHZhciArPSBwb3coZGF0YVtpXS5oZWlnaHQgLSBhdmUsIDIpOwogICAgfQogICAgZG91YmxlIHN0ZCA9IHNxcnQodmFyIC8gMy4wKTsKCiAgICBwcmludGYoIlxu5LiL44GL44KJM+WQje+8iOi6q+mVt+OBjOmrmOOBhDPlkI3vvInjga7lubPlnYfouqvplbfvvJolLjFmIGNtXG4iLCBhdmUpOwogICAgcHJpbnRmKCLmqJnmupblgY/lt67vvJolLjFmIGNtXG4iLCBzdGQpOwoKICAgIHJldHVybiAwOwp9Cg==