728x90
반응형

문제 : http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=99&sca=10g0

 

JUNGOL

 

www.jungol.co.kr

문제

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
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기