coding_test/BAEKJOON

백준 4344번 C언어 풀이

CodeJin 2021. 8. 5. 18:04

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

입력받은 숫자의 분포중에서 평균보다 높은 비율을 구하는 문제. 

 

입력받은 숫자들을 평균을 낸 후에 평균 이상인 숫자들의 비율을 구하면 끝난다.

 

#include<stdio.h>

int main(){
    int c, n, cnt; // 테스트케이스, 학생 수, 평균 넘은 사람
    double avg; // 평균

    scanf("%d", &c); //테스트 케이스 입력

    for (int i = 0; i < c; i++) {
        avg = 0; // 평균과 평균 넘은사람 초기화
        cnt = 0;

        scanf("%d", &n); // 학생수 입력
        int score[n]; // 학생 수에 맞는 길이의 배열
        
        for (int j = 0; j < n; j++) {
            scanf("%d", &score[j]); // 점수 입력
            avg += score[j]; // 점수를 총합
        }
        avg /= n; //평균 구함

        for (int k = 0; k < n; k++) {
            if (score[k] > avg) { // 평균을 넘는 사람 세기
                cnt++;
            }
        }
        printf("%.3f%%\n", 100*(double)cnt/n);
    }
    return 0;
}