#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, 60, 170},
{2, 55, 160},
{3, 70, 180},
{4, 65, 175}
};
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+OBiOOCiyBzd2FwIOmWouaVsCAqLwp2b2lkIHN3YXAoc3RydWN0IEJvZHkgKngsIHN0cnVjdCBCb2R5ICp5KQp7CiAgICBzdHJ1Y3QgQm9keSB0ZW1wOwogICAgdGVtcCA9ICp4OwogICAgKnggPSAqeTsKICAgICp5ID0gdGVtcDsKfQoKaW50IG1haW4odm9pZCkKewogICAgaW50IGksIGo7CgogICAgLyog5qeL6YCg5L2T6YWN5YiX44Gu5Yid5pyf5YyW77yI4oaQ6Kqy6aGM44Gn5oyH5a6a44GV44KM44Gf5YCk44Gr5ZCI44KP44Gb44Gm44Gt77yJICovCiAgICBzdHJ1Y3QgQm9keSBhW10gPSB7CiAgICAgICAgezEsIDYwLCAxNzB9LAogICAgICAgIHsyLCA1NSwgMTYwfSwKICAgICAgICB7MywgNzAsIDE4MH0sCiAgICAgICAgezQsIDY1LCAxNzV9CiAgICB9OwoKICAgIGludCBuID0gc2l6ZW9mKGEpIC8gc2l6ZW9mKGFbMF0pOwoKICAgIC8qIOi6q+mVt+OBrumAhumghu+8iOmrmOOBhOmghu+8ieOBq+aVtOWIlyAqLwogICAgZm9yIChpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBmb3IgKGogPSBpICsgMTsgaiA8IG47IGorKykgewogICAgICAgICAgICBpZiAoYVtpXS5oZWlnaHQgPCBhW2pdLmhlaWdodCkgewogICAgICAgICAgICAgICAgc3dhcCgmYVtpXSwgJmFbal0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8qIOihqOekuiAqLwogICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIHByaW50ZigiSUQ9JWQg5L2T6YeNPSVkIOi6q+mVtz0lZFxuIiwKICAgICAgICAgICAgICAgYVtpXS5pZCwgYVtpXS53ZWlnaHQsIGFbaV0uaGVpZ2h0KTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQo=