#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}
};
// --- 身長の昇順に並び替え(単純バブルソート) ---
for (int i = 0; i < 5 - 1; i++) {
for (int j = i + 1; j < 5; j++) {
if (data[i].height > data[j].height) {
Body tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
}
}
// --- 並び替え後の結果を表示 ---
for (int i = 0; i < 5; i++) {
printf("%d %.0f %.0f\n", data
[i
].
id, data
[i
].
height, data
[i
].
weight); }
// --- 下から3人の平均と標準偏差 ---
double sum = 0.0;
for (int i = 2; i < 5; i++) sum += data[i].height;
double ave = sum / 3.0;
double var = 0.0;
for (int i
= 2; i
< 5; i
++) var
+= pow(data
[i
].
height - ave
, 2); double std
= sqrt(var
/ 3.0);
printf("\nAverage height (top 3): %.1f cm\n", ave
); printf("Standard deviation: %.1f cm\n", std
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBkb3VibGUgaGVpZ2h0OwogICAgZG91YmxlIHdlaWdodDsKfSBCb2R5OwoKaW50IG1haW4odm9pZCkgewogICAgQm9keSBkYXRhWzVdID0gewogICAgICAgIHsxLCAxNjUsIDYwfSwKICAgICAgICB7MiwgMTcwLCA2OH0sCiAgICAgICAgezMsIDE2MCwgNTB9LAogICAgICAgIHs0LCAxODAsIDc1fSwKICAgICAgICB7NSwgMTc1LCA4MH0KICAgIH07CiAgICAKICAgIC8vIC0tLSDouqvplbfjga7mmIfpoIbjgavkuKbjgbPmm7/jgYjvvIjljZjntJTjg5Djg5bjg6vjgr3jg7zjg4jvvIkgLS0tCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDUgLSAxOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCA1OyBqKyspIHsKICAgICAgICAgICAgaWYgKGRhdGFbaV0uaGVpZ2h0ID4gZGF0YVtqXS5oZWlnaHQpIHsKICAgICAgICAgICAgICAgIEJvZHkgdG1wID0gZGF0YVtpXTsKICAgICAgICAgICAgICAgIGRhdGFbaV0gPSBkYXRhW2pdOwogICAgICAgICAgICAgICAgZGF0YVtqXSA9IHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgLy8gLS0tIOS4puOBs+abv+OBiOW+jOOBrue1kOaenOOCkuihqOekuiAtLS0KICAgIHByaW50ZigiaWQgIGhlaWdodCAgd2VpZ2h0XG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlZCAgICUuMGYgICAgICUuMGZcbiIsIGRhdGFbaV0uaWQsIGRhdGFbaV0uaGVpZ2h0LCBkYXRhW2ldLndlaWdodCk7CiAgICB9CgogICAgLy8gLS0tIOS4i+OBi+OCiTPkurrjga7lubPlnYfjgajmqJnmupblgY/lt64gLS0tCiAgICBkb3VibGUgc3VtID0gMC4wOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPCA1OyBpKyspIHN1bSArPSBkYXRhW2ldLmhlaWdodDsKICAgIGRvdWJsZSBhdmUgPSBzdW0gLyAzLjA7CgogICAgZG91YmxlIHZhciA9IDAuMDsKICAgIGZvciAoaW50IGkgPSAyOyBpIDwgNTsgaSsrKSB2YXIgKz0gcG93KGRhdGFbaV0uaGVpZ2h0IC0gYXZlLCAyKTsKICAgIGRvdWJsZSBzdGQgPSBzcXJ0KHZhciAvIDMuMCk7CgogICAgcHJpbnRmKCJcbkF2ZXJhZ2UgaGVpZ2h0ICh0b3AgMyk6ICUuMWYgY21cbiIsIGF2ZSk7CiAgICBwcmludGYoIlN0YW5kYXJkIGRldmlhdGlvbjogJS4xZiBjbVxuIiwgc3RkKTsKCiAgICByZXR1cm4gMDsKfQo=