#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}, /* 合計: 180 */
{17002, 90, 40, 80}, /* 合計: 210 */
{17003, 20, 30, 50}}; /* 合計: 100 */
struct student tmp;
/* ソート(3教科の合計点で昇順) */
for (i=1; i<N; i++) {
for (j=0; j<N-i; j++){
/* j番目とj+1番目の生徒の「3教科の合計点」を比較 */
if( (s[j].eng + s[j].math + s[j].sci) > (s[j+1].eng + s[j+1].math + s[j+1].sci) ){
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("学籍番号:%-7d 英語:%-5d 数学:%-5d 理科:%-5d 合計:%-5d\n", s[i].id, s[i].eng, s[i].math, s[i].sci, total);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKc3RydWN0IHN0dWRlbnQgewogICAgaW50IGlkOyAgICAgLyog5a2m57GN55Wq5Y+3ICovCiAgICBpbnQgZW5nOyAgICAvKiDoi7Hoqp7jga7miJDnuL4gKi8KICAgIGludCBtYXRoOyAgIC8qIOaVsOWtpuOBruaIkOe4viAqLwogICAgaW50IHNjaTsgICAgLyog55CG56eR44Gu5oiQ57i+ICovCn07CiAKI2RlZmluZSBOIDMKIAppbnQgbWFpbigpewogICAgaW50IGksIGo7CiAgICBzdHJ1Y3Qgc3R1ZGVudCBzW05dID0gewogICAgICAgIHsxNzAwMSwgIDYwLCAxMDAsICAyMH0sICAvKiDlkIjoqIg6IDE4MCAqLwogICAgICAgIHsxNzAwMiwgIDkwLCAgNDAsICA4MH0sICAvKiDlkIjoqIg6IDIxMCAqLwogICAgICAgIHsxNzAwMywgIDIwLCAgMzAsICA1MH19OyAvKiDlkIjoqIg6IDEwMCAqLwogICAgc3RydWN0IHN0dWRlbnQgdG1wOwogICAgCiAgICAgLyog44K944O844OI77yIM+aVmeenkeOBruWQiOioiOeCueOBp+aYh+mghu+8iSAqLwogICAgZm9yIChpPTE7IGk8TjsgaSsrKSB7CiAgICAgICAgZm9yIChqPTA7IGo8Ti1pOyBqKyspewogICAgICAgICAgICAvKiBq55Wq55uu44Goaisx55Wq55uu44Gu55Sf5b6S44Gu44CMM+aVmeenkeOBruWQiOioiOeCueOAjeOCkuavlOi8gyAqLwogICAgICAgICAgICBpZiggKHNbal0uZW5nICsgc1tqXS5tYXRoICsgc1tqXS5zY2kpID4gKHNbaisxXS5lbmcgKyBzW2orMV0ubWF0aCArIHNbaisxXS5zY2kpICl7CiAgICAgICAgICAgICAgICB0bXAgPSBzW2pdOwogICAgICAgICAgICAgICAgc1tqXSA9IHNbaiArIDFdOwogICAgICAgICAgICAgICAgc1tqKzFdID0gdG1wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogCiAgLyog5oiQ57i+44Gu44OX44Oq44Oz44OIICovCiAgICBmb3IoaT0wOyBpPE47IGkrKykgewogICAgICAgIC8qIOWQhOeUn+W+kuOBruWQiOioiOeCueOCkuioiOeulyAqLwogICAgICAgIGludCB0b3RhbCA9IHNbaV0uZW5nICsgc1tpXS5tYXRoICsgc1tpXS5zY2k7CiAgICAJcHJpbnRmKCLlrabnsY3nlarlj7c6JS03ZCDoi7Hoqp46JS01ZCDmlbDlraY6JS01ZCDnkIbnp5E6JS01ZCDlkIjoqIg6JS01ZFxuIiwKICAgICAgICBzW2ldLmlkLCBzW2ldLmVuZywgc1tpXS5tYXRoLCBzW2ldLnNjaSwgdG90YWwpOwogICAgfQogCiAgICByZXR1cm4gMDsKfQo=