#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 노가다는 절대 답이 아니라 생각했는데 예시 답안으로 있어서 당황했고,
버블 정렬이라는 아직 모르는 것 가지고 문제 푼 것 보고 당황함.
기본 문법 다 배우면 알고리즘 배우던가 해야겠음.
댓글 0