#include <stdio.h>
#include <math.h>
#include <string.h>
typedef struct {
char name[20];
int age;
double height;
} Body;
int main(void) {
Body data[] = {
{"Tanaka", 20, 170.2},
{"Suzuki", 19, 165.8},
{"Yamada", 22, 180.4},
{"Sato", 21, 175.3},
{"Kobayashi", 20, 169.0}
};
int n = sizeof(data) / sizeof(data[0]);
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("%-10s %2d歳 %.1fcm\n", data
[i
].
name, data
[i
].
age, data
[i
].
height); }
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名の平均身長:%.1fcm\n", ave
); printf("上位3名の標準偏差:%.1fcm\n", std
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnR5cGVkZWYgc3RydWN0IHsKICAgIGNoYXIgbmFtZVsyMF07CiAgICBpbnQgYWdlOwogICAgZG91YmxlIGhlaWdodDsKfSBCb2R5OwoKaW50IG1haW4odm9pZCkgewogICAgQm9keSBkYXRhW10gPSB7CiAgICAgICAgeyJUYW5ha2EiLCAyMCwgMTcwLjJ9LAogICAgICAgIHsiU3V6dWtpIiwgMTksIDE2NS44fSwKICAgICAgICB7IllhbWFkYSIsIDIyLCAxODAuNH0sCiAgICAgICAgeyJTYXRvIiwgMjEsIDE3NS4zfSwKICAgICAgICB7IktvYmF5YXNoaSIsIDIwLCAxNjkuMH0KICAgIH07CiAgICBpbnQgbiA9IHNpemVvZihkYXRhKSAvIHNpemVvZihkYXRhWzBdKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IgKGludCBqID0gaSArIDE7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgaWYgKGRhdGFbaV0uaGVpZ2h0ID4gZGF0YVtqXS5oZWlnaHQpIHsKICAgICAgICAgICAgICAgIEJvZHkgdGVtcCA9IGRhdGFbaV07CiAgICAgICAgICAgICAgICBkYXRhW2ldID0gZGF0YVtqXTsKICAgICAgICAgICAgICAgIGRhdGFbal0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaW50Zigi44CQ5pW05YiX57WQ5p6c44CRXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlLTEwcyAlMmTmrbMgICUuMWZjbVxuIiwgZGF0YVtpXS5uYW1lLCBkYXRhW2ldLmFnZSwgZGF0YVtpXS5oZWlnaHQpOwogICAgfQoKICAgIGRvdWJsZSBzdW0gPSAwLjA7CiAgICBmb3IgKGludCBpID0gbiAtIDM7IGkgPCBuOyBpKyspIHsKICAgICAgICBzdW0gKz0gZGF0YVtpXS5oZWlnaHQ7CiAgICB9CiAgICBkb3VibGUgYXZlID0gc3VtIC8gMy4wOwoKICAgIGRvdWJsZSB2YXIgPSAwLjA7CiAgICBmb3IgKGludCBpID0gbiAtIDM7IGkgPCBuOyBpKyspIHsKICAgICAgICB2YXIgKz0gcG93KGRhdGFbaV0uaGVpZ2h0IC0gYXZlLCAyKTsKICAgIH0KICAgIGRvdWJsZSBzdGQgPSBzcXJ0KHZhciAvIDMuMCk7CgogICAgcHJpbnRmKCJcbuS4iuS9jTPlkI3jga7lubPlnYfouqvplbfvvJolLjFmY21cbiIsIGF2ZSk7CiAgICBwcmludGYoIuS4iuS9jTPlkI3jga7mqJnmupblgY/lt67vvJolLjFmY21cbiIsIHN0ZCk7CgogICAgcmV0dXJuIDA7Cn0K