Lavida 1907 롯데 자이언츠 선수들
문제 설명
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
은근 풀만함 ㅇㅇ
댓글남기기