#include <stdio.h>
struct Body {
int id;
int weight;
int height;
};
/* 構造体を入れ替える swap 関数 */
void swap(struct Body *x, struct Body *y)
{
struct Body temp;
temp = *x;
*x = *y;
*y = temp;
}
int main(void)
{
int i, j;
/* 構造体配列の初期化(←課題で指定された値に合わせてね) */
struct 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 = i + 1; j < n; j++) {
if (a[i].height < a[j].height) {
swap(&a[i], &a[j]);
}
}
}
/* 表示 */
for (i = 0; i < n; i++) {
a[i].id, a[i].weight, a[i].height);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgQm9keSB7CiAgICBpbnQgaWQ7CiAgICBpbnQgd2VpZ2h0OwogICAgaW50IGhlaWdodDsKfTsKCi8qIOani+mAoOS9k+OCkuWFpeOCjOabv+OBiOOCiyBzd2FwIOmWouaVsCAqLwp2b2lkIHN3YXAoc3RydWN0IEJvZHkgKngsIHN0cnVjdCBCb2R5ICp5KQp7CiAgICBzdHJ1Y3QgQm9keSB0ZW1wOwogICAgdGVtcCA9ICp4OwogICAgKnggPSAqeTsKICAgICp5ID0gdGVtcDsKfQoKaW50IG1haW4odm9pZCkKewogICAgaW50IGksIGo7CgogICAgLyog5qeL6YCg5L2T6YWN5YiX44Gu5Yid5pyf5YyW77yI4oaQ6Kqy6aGM44Gn5oyH5a6a44GV44KM44Gf5YCk44Gr5ZCI44KP44Gb44Gm44Gt77yJICovCiAgICBzdHJ1Y3QgQm9keSBhW10gPSB7CiAgICAgICAgezEsIDY1LCAxNjl9LAogICAgICAgIHsyLCA3MywgMTcwfSwKICAgICAgICB7MywgNTksIDE2MX0sCiAgICAgICAgezQsIDc5LCAxNzV9LAogICAgICAgIHs1LCA1NSwgMTY4fQogICAgfTsKCiAgICBpbnQgbiA9IHNpemVvZihhKSAvIHNpemVvZihhWzBdKTsKCiAgICAvKiDouqvplbfjga7pgIbpoIbvvIjpq5jjgYTpoIbvvInjgavmlbTliJcgKi8KICAgIGZvciAoaSA9IDA7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgZm9yIChqID0gaSArIDE7IGogPCBuOyBqKyspIHsKICAgICAgICAgICAgaWYgKGFbaV0uaGVpZ2h0IDwgYVtqXS5oZWlnaHQpIHsKICAgICAgICAgICAgICAgIHN3YXAoJmFbaV0sICZhW2pdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKiDooajnpLogKi8KICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBwcmludGYoIklEPSVkIOS9k+mHjT0lZCDouqvplbc9JWRcbiIsCiAgICAgICAgICAgICAgIGFbaV0uaWQsIGFbaV0ud2VpZ2h0LCBhW2ldLmhlaWdodCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K