#include <stdio.h>

int main()
{  
    char name[3][30];
    int korean_score[3]; int english_score[3]; int math_score[3];
    int total[3]; int rank[3] = { 0, 1, 2 }; int temp;

    for(int i=0; i<3; i++)
    {
        printf("%d 번째 학생 이름: ", i+1);
        scanf("%s", name[i]);
        printf("국어 점수: ");
        scanf("%d", &korean_score[i]);
        printf("수학 점수: ");
        scanf("%d", &math_score[i]);
        printf("영어 점수: ");
        scanf("%d", &english_score[i]);

        total[i] = korean_score[i] + math_score[i] + english_score[i];
    }

    for(int i=0; i<3; i++)
    {
        for(int j=i+1; j<3; j++)
        {
            if(total[rank[i]] < total[rank[j]])
            {
                temp = rank[i];
                rank[i] = rank[j];
                rank[j] = temp;
            }
            printf("%d %d / ", i, j);
            printf("%d %d %d \n", rank[0], rank[1], rank[2]);
        }
    }

    printf("----------------------------------------------------\n");
    printf("이름    국어    영어    수학    총점    평균    등수\n");
    printf("----------------------------------------------------\n");

    for(int i=0; i<3; i++)
    {
        printf("%-8s %-7d %-7d %-7d %-7d %-7d %d\n",
         name[rank[i]], korean_score[rank[i]], math_score[rank[i]], english_score[rank[i]], total[rank[i]], total[rank[i]]/3, i+1);
    }

    return 0;
}

다른 건 문제 없었는데 등수 별로 출력하게 만드는 게 굉장히 어려웠음.


답안은 2개 있었는데 하나는 등수에 대한 모든 경우의 수를 if/else문으로 처리하는 거고
또 하나는 버블 정렬을 이용한 거였음.

본인은 if/else 노가다는 절대 답이 아니라 생각했는데 예시 답안으로 있어서 당황했고,
버블 정렬이라는 아직 모르는 것 가지고 문제 푼 것 보고 당황함.
기본 문법 다 배우면 알고리즘 배우던가 해야겠음.