#include <stdio.h>
#include <math.h>
typedef struct {
int id;
double height;
double weight;
} Body;
void sortByHeight(Body data[], int n) {
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;
}
}
}
}
int main(void) {
Body data[5] = {
{1, 165, 60},
{2, 170, 68},
{3, 160, 50},
{4, 180, 75},
{5, 175, 80}
};
int n = 5;
sortByHeight(data, n);
printf("ID\tHeight\tWeight\n"); for(int i = 0; i < n; i++) {
printf("%d\t%.0f\t%.0f\n", data
[i
].
id, data
[i
].
height, data
[i
].
weight); }
double ave = 0.0, std = 0.0;
for(int i = n - 3; i < n; i++) {
ave += data[i].height;
}
ave /= 3;
for(int i = n - 3; i < n; i++) {
std
+= pow(data
[i
].
height - ave
, 2); }
printf("\nAverage height (top 3): %.1f cm\n", ave
); printf("Standard deviation: %.1f\n", std
);
return 0;
}
CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8bWF0aC5oPiAgCgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBkb3VibGUgaGVpZ2h0OwogICAgZG91YmxlIHdlaWdodDsKfSBCb2R5OwoKdm9pZCBzb3J0QnlIZWlnaHQoQm9keSBkYXRhW10sIGludCBuKSB7CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgewogICAgICAgIGZvcihpbnQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmKGRhdGFbaV0uaGVpZ2h0ID4gZGF0YVtqXS5oZWlnaHQpIHsKICAgICAgICAgICAgICAgIEJvZHkgdGVtcCA9IGRhdGFbaV07CiAgICAgICAgICAgICAgICBkYXRhW2ldID0gZGF0YVtqXTsKICAgICAgICAgICAgICAgIGRhdGFbal0gPSB0ZW1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBCb2R5IGRhdGFbNV0gPSB7CiAgICAgICAgezEsIDE2NSwgNjB9LAogICAgICAgIHsyLCAxNzAsIDY4fSwKICAgICAgICB7MywgMTYwLCA1MH0sCiAgICAgICAgezQsIDE4MCwgNzV9LAogICAgICAgIHs1LCAxNzUsIDgwfQogICAgfTsKCiAgICBpbnQgbiA9IDU7CgogICAgc29ydEJ5SGVpZ2h0KGRhdGEsIG4pOwoKICAgIHByaW50ZigiSURcdEhlaWdodFx0V2VpZ2h0XG4iKTsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIiVkXHQlLjBmXHQlLjBmXG4iLCBkYXRhW2ldLmlkLCBkYXRhW2ldLmhlaWdodCwgZGF0YVtpXS53ZWlnaHQpOwogICAgfQoKICAgIGRvdWJsZSBhdmUgPSAwLjAsIHN0ZCA9IDAuMDsKICAgIGZvcihpbnQgaSA9IG4gLSAzOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgYXZlICs9IGRhdGFbaV0uaGVpZ2h0OwogICAgfQogICAgYXZlIC89IDM7CgogICAgZm9yKGludCBpID0gbiAtIDM7IGkgPCBuOyBpKyspIHsKICAgICAgICBzdGQgKz0gcG93KGRhdGFbaV0uaGVpZ2h0IC0gYXZlLCAyKTsKICAgIH0KICAgIHN0ZCA9IHNxcnQoc3RkIC8gMyk7CgogICAgcHJpbnRmKCJcbkF2ZXJhZ2UgaGVpZ2h0ICh0b3AgMyk6ICUuMWYgY21cbiIsIGF2ZSk7CiAgICBwcmludGYoIlN0YW5kYXJkIGRldmlhdGlvbjogJS4xZlxuIiwgc3RkKTsKCiAgICByZXR1cm4gMDsKfQo=