#include <stdio.h>
struct student {
int id; /* 学籍番号 */
int eng; /* 英語 */
int math; /* 数学 */
int sci; /* 理科 */
};
#define N 3
int main() {
int i, j;
struct student s[N] = {
{17001, 60, 100, 20},
{17002, 90, 40, 80},
{17003, 20, 30, 50}
};
struct student tmp;
int total1, total2;
/* 合計点で昇順ソート */
for(i = 1; i < N; i++) {
for(j = 0; j < N - i; j++) {
total1 = s[j].eng + s[j].math + s[j].sci;
total2 = s[j+1].eng + s[j+1].math + s[j+1].sci;
if(total1 > total2) {
tmp = s[j];
s[j] = s[j+1];
s[j+1] = tmp;
}
}
}
/* 表示 */
for(i = 0; i < N; i++) {
int total = s[i].eng + s[i].math + s[i].sci;
printf("学籍番号:%d 英語:%d 数学:%d 理科:%d 合計:%d\n", s[i].id, s[i].eng, s[i].math, s[i].sci, total);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3Qgc3R1ZGVudCB7CiAgICBpbnQgaWQ7ICAgIC8qIOWtpuexjeeVquWPtyAqLwogICAgaW50IGVuZzsgICAvKiDoi7Hoqp4gKi8KICAgIGludCBtYXRoOyAgLyog5pWw5a2mICovCiAgICBpbnQgc2NpOyAgIC8qIOeQhuenkSAqLwp9OwoKI2RlZmluZSBOIDMKCmludCBtYWluKCkgewoKICAgIGludCBpLCBqOwoKICAgIHN0cnVjdCBzdHVkZW50IHNbTl0gPSB7CiAgICAgICAgezE3MDAxLCA2MCwgMTAwLCAyMH0sCiAgICAgICAgezE3MDAyLCA5MCwgNDAsIDgwfSwKICAgICAgICB7MTcwMDMsIDIwLCAzMCwgNTB9CiAgICB9OwoKICAgIHN0cnVjdCBzdHVkZW50IHRtcDsKCiAgICBpbnQgdG90YWwxLCB0b3RhbDI7CgogICAgLyog5ZCI6KiI54K544Gn5piH6aCG44K944O844OIICovCiAgICBmb3IoaSA9IDE7IGkgPCBOOyBpKyspIHsKICAgICAgICBmb3IoaiA9IDA7IGogPCBOIC0gaTsgaisrKSB7CgogICAgICAgICAgICB0b3RhbDEgPSBzW2pdLmVuZyArIHNbal0ubWF0aCArIHNbal0uc2NpOwogICAgICAgICAgICB0b3RhbDIgPSBzW2orMV0uZW5nICsgc1tqKzFdLm1hdGggKyBzW2orMV0uc2NpOwoKICAgICAgICAgICAgaWYodG90YWwxID4gdG90YWwyKSB7CiAgICAgICAgICAgICAgICB0bXAgPSBzW2pdOwogICAgICAgICAgICAgICAgc1tqXSA9IHNbaisxXTsKICAgICAgICAgICAgICAgIHNbaisxXSA9IHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKiDooajnpLogKi8KICAgIGZvcihpID0gMDsgaSA8IE47IGkrKykgewoKICAgICAgICBpbnQgdG90YWwgPSBzW2ldLmVuZyArIHNbaV0ubWF0aCArIHNbaV0uc2NpOwoKICAgICAgICBwcmludGYoIuWtpuexjeeVquWPtzolZCDoi7Hoqp46JWQg5pWw5a2mOiVkIOeQhuenkTolZCDlkIjoqIg6JWRcbiIsCiAgICAgICAgICAgICAgIHNbaV0uaWQsIHNbaV0uZW5nLCBzW2ldLm1hdGgsIHNbaV0uc2NpLCB0b3RhbCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=