개발자 뺚

[BAEKJOON ONLINE JUDGE] 4344번 : 평균은 넘겠지 본문

Solution/C

[BAEKJOON ONLINE JUDGE] 4344번 : 평균은 넘겠지

2023. 10. 23. 16:00

시간 제한 : 1 초

 

메모리 제한 : 256 MB

 

문제

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

 

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

 

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10^(-3)이하이면 정답이다.


#include<stdio.h>

int num[100];
int arr[1000][1000];
double avg[100];
int kdr[100];

int main()
{
    int n = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        scanf("%d", &num[i]);
        for (int j = 0; j < num[i]; j++)
            scanf("%d", &arr[i][j]);
    }

    for (int i = 0; i < n; i++) {
        int sum = 0;
		for (int j = 0; j < num[i]; j++)
            sum += arr[i][j];

        avg[i] = (double)sum / (double)num[i];
    }

    for (int i = 0; i < n; i++) {
        int count = 0;
        for (int j = 0; j < num[i]; j++)
        	if (arr[i][j] > avg[i])
                count++;

        kdr[i] = count;
    }

    for (int i = 0; i < n; i++)
    	printf("%.3f%%\n", (double)kdr[i] / (double)num[i] * 100.0);

    return 0;
}