728x90
반응형
문제 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=99&sca=10g0
문제
10 이하의 정수 n을 입력받은 후 n명의 이름(영문자 20자 이하)과 세 과목의 점수를 입력받아 총점이 높은 순으로 정렬하여 출력하는 프로그램을 작성하시오.
입력 예
3
Chung 50 65 89
Nolbu 100 38 99
Hungbu 85 95 77
출력 예
Hungbu 85 95 77 257
Nolbu 100 38 99 237
Chung 50 65 89 204
Hint!
이름과 3과목의 성적 이외에 총점까지 포함하는 구조체를 정의하면 편리하다.
코드 :
# include <stdio.h>
typedef struct Person{
char name[21];
int korean;
int math;
int english;
int sum;
}Person;
int main()
{
int num,i,j;
scanf("%d",&num);
Person a[num],tmp;
for(i = 0; i<num; i++)
{
scanf("%s %d %d %d",a[i].name,&a[i].korean,&a[i].math,&a[i].english);
a[i].sum = a[i].korean+a[i].math+a[i].english;
}
for(i = 0; i<num; i++)
{
for(j = i; j<num; j++)
{
if(a[i].sum < a[j].sum)
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
for(i = 0; i<num; i++)
{
printf("%s %d %d %d %d\n",a[i].name,a[i].korean,a[i].math,a[i].english,a[i].sum);
}
return 0;
}
728x90
반응형
최근댓글