Lavida 1907 롯데 자이언츠 선수들

1 분 소요

문제 설명

2011년10월16일은 롯데 자이언츠팀이 코리안시리즈 우승을 향한 첫 관문인 대망의 플레이오프 시합을 갖게 된다. 범준이는 롯데 자이언츠의 광팬인데 이번 플레이오프에 출전하게 되는 선수들에 대하여 좀 더 자세히 알고 싶어한다. 특히 플레이오프에 출전하는 롯데 자이언츠 선수들의 평균 나이와 가장 나이가 많은 선수의 이름과 포지션, 가장 나이가 적은 선수의 이름과 포지션을 알고 싶어한다. 롯데 자이언츠 선수들의 명단이 주어질 때 이 세가지 정보를 쉽게 찾아 주는 프로그램을 작성해 보자. (구조체 배열을 활용하시오)

입력 설명

첫 줄에는 출전 선수의 명수 T가 입력된다.(2 <= T <= 15)

다음 줄부터 각 선수들의 영문이름(최대15자), 나이(50 이하의 양수), 영문포지션(최대20자)이 한줄에 하나씩 입력된다. 나이가 가장 많은 선수와 가장 적은 선수는 한 명만 존재한다고 가정한다.

출력 설명

모든 선수들의 평균 나이(소수점 이하는 무시하고 정수로 출력), 나이가 가장 많은 선수의 이름과 포지션, 나이가 가장 적은 선수의 이름과 포지션의 세 가지 정보를 한 줄에 하나씩 출력한다. 각 줄에서의 구분은 하나의 공백으로 이루어진다.(출력형식은 아래의 sample output 형식을 참고하기 바람)

입력 예시

3
JangWonJoon 29 Pitcher
JeonJoonWoo 26 Left_Fielder
MoonGyuHyoun 27 Shortstop

출력 예시

average age : 27
the oldest : JangWonJoon Pitcher
the youngest : JeonJoonWoo Left_Fielder

코드

#include <stdio.h>
#include <string.h>

struct data {
	char name[16];
	int age;
	char position[21];
};

int main() {

	struct data list[16];
	int a,c,v,temp, r = 0;
	int arr[16];
	scanf("%d", &a);
	for (int i = 0; i < a; i++)
	{
		scanf("%s", &list[i].name);
		scanf("%d", &list[i].age);
		arr[i] = list[i].age;
		r += list[i].age;
		scanf("%s", &list[i].position);
	}
	
	//나이 기준 버플 함수
	for ( c = 0; c < a; c++)
	{
		for (v = 0; v < a - 1 ; v ++){
			if (arr[v] < arr[v + 1]) {
				temp = arr[v];
				arr[v] = arr[v + 1];
				arr[v + 1] = temp;
			}
		}
	}
	
	//출력
	printf("average age : %d\n", r / a);
	for (int i = 0; i < a; i++) {
		if (arr[0] == list[i].age) {
			printf("the oldest : %s %s\n", list[i].name, list[i].position);
		}
	}
	for (int i = 0; i < a; i++) {
		if (arr[a-1] == list[i].age) {
			printf("the youngest : %s %s", list[i].name, list[i].position);
		}
	}
	return 0;
}

나 : say

은근 풀만함 ㅇㅇ

댓글남기기