#include <stdio.h>
typedef struct {
int id;
int weight;
int height;
} Body;
void swap(Body *a, Body *b) {
Body tmp;
tmp = *a;
*a = *b;
*b = tmp;
}
int main(void) {
int i, j;
Body a[] = {
{1, 65, 169},
{2, 73, 170},
{3, 59, 161},
{4, 79, 175},
{5, 55, 168}
};
int n = sizeof(a) / sizeof(a[0]);
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - 1 - i; j++) {
if (a[j].height < a[j + 1].height) {
swap(&a[j], &a[j + 1]);
}
}
}
for (i = 0; i < n; i++) {
printf("id=%d weight=%d height=%d\n", a[i].id, a[i].weight, a[i].height);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB7CiAgICBpbnQgaWQ7CiAgICBpbnQgd2VpZ2h0OwogICAgaW50IGhlaWdodDsKfSBCb2R5OwoKdm9pZCBzd2FwKEJvZHkgKmEsIEJvZHkgKmIpIHsKICAgIEJvZHkgdG1wOwogICAgdG1wID0gKmE7CiAgICAqYSA9ICpiOwogICAgKmIgPSB0bXA7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGludCBpLCBqOwoKICAgIEJvZHkgYVtdID0gewogICAgICAgIHsxLCA2NSwgMTY5fSwKICAgICAgICB7MiwgNzMsIDE3MH0sCiAgICAgICAgezMsIDU5LCAxNjF9LAogICAgICAgIHs0LCA3OSwgMTc1fSwKICAgICAgICB7NSwgNTUsIDE2OH0KICAgIH07CgogICAgaW50IG4gPSBzaXplb2YoYSkgLyBzaXplb2YoYVswXSk7CgogICAgZm9yIChpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IgKGogPSAwOyBqIDwgbiAtIDEgLSBpOyBqKyspIHsKICAgICAgICAgICAgaWYgKGFbal0uaGVpZ2h0IDwgYVtqICsgMV0uaGVpZ2h0KSB7CiAgICAgICAgICAgICAgICBzd2FwKCZhW2pdLCAmYVtqICsgMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoImlkPSVkIHdlaWdodD0lZCBoZWlnaHQ9JWRcbiIsCiAgICAgICAgICAgICAgIGFbaV0uaWQsIGFbaV0ud2VpZ2h0LCBhW2ldLmhlaWdodCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==