#include <stdio.h>
typedef struct {
int id;
int weight;
int height;
} Body;
void swap(Body *x, Body *y) {
Body w = *x;
*x = *y;
*y = w;
}
void sort(Body data[], int n) {
for(int i = 0; i < n - 1; i++) {
for(int j = 0; j < n - 1 ; j++) {
if(data[j].height < data[j + 1].height) {
swap(&data[j], &data[j + 1]);
}
}
}
}
int main() {
Body data[] = {
{1,65,169},
{2,73,170},
{3,59,161},
{4,79,175},
{5,55,168}
};
int n = 5;
sort(data, n);
for(int i = 0; i < n; i++) {
printf("ID=%d, 体重=%d, 身長=%d\n", data[i].id, data[i].weight, data[i].height);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBpbnQgd2VpZ2h0OwogICAgaW50IGhlaWdodDsKfSBCb2R5OwoKdm9pZCBzd2FwKEJvZHkgKngsIEJvZHkgKnkpIHsKICAgIEJvZHkgdyA9ICp4OwogICAgKnggPSAqeTsKICAgICp5ID0gdzsKfQoKdm9pZCBzb3J0KEJvZHkgZGF0YVtdLCBpbnQgbikgewogICAgZm9yKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgbiAtIDEgOyBqKyspIHsKICAgICAgICAgICAgaWYoZGF0YVtqXS5oZWlnaHQgPCBkYXRhW2ogKyAxXS5oZWlnaHQpIHsKICAgICAgICAgICAgICAgIHN3YXAoJmRhdGFbal0sICZkYXRhW2ogKyAxXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgQm9keSBkYXRhW10gPSB7CiAgICAgICAgezEsNjUsMTY5fSwKICAgICAgICB7Miw3MywxNzB9LAogICAgICAgIHszLDU5LDE2MX0sCiAgICAgICAgezQsNzksMTc1fSwKICAgICAgICB7NSw1NSwxNjh9CiAgICB9OwoKICAgIGludCBuID0gNTsKCiAgICBzb3J0KGRhdGEsIG4pOwoKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIklEPSVkLCDkvZPph409JWQsIOi6q+mVtz0lZFxuIiwKICAgICAgICAgICAgICAgZGF0YVtpXS5pZCwgZGF0YVtpXS53ZWlnaHQsIGRhdGFbaV0uaGVpZ2h0KTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=
ID=4, 体重=79, 身長=175
ID=2, 体重=73, 身長=170
ID=1, 体重=65, 身長=169
ID=5, 体重=55, 身長=168
ID=3, 体重=59, 身長=161