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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

블로그에 들어오시는 분들이 쉬운 문제를 보러 오시는 분들이 대부분이라 단계별 풀기 밀어낼겸 쉬운 문제로 가져왔습니다.

 

입력

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

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

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

 

해결 방법

 

배열에 학생들 점수를 받아준 다음, 평균이 넘는 사람의 숫자를 세서

(평균을 넘는 사람) / (N명) * 100 을 출력해주면 몇 퍼센트인지 구할 수 있습니다.

 

주의할 점:

1. 평균을 넘는 사람을 담는 변수인 over를 초기화 시켜주기. 

2. % 출력

3. 소수점 3자리 까지만 출력

 

 

#include <stdio.h>
int main() {
    double C, n;
    double arr[1000] = {}; //최소 1~ 최대 1000명이니, 1000칸만 있으면 됩니다.
    scanf("%lf", &C);
    for(int i = 0; i < C; i++) { //C번만큼 반복
        double sum = 0; //총 합계
        scanf("%lf", &n);

        for(int j = 0; j < n; j++) {
            scanf("%lf", &arr[j]);
            sum += arr[j]; //배열에 입력해주며 총 합계를 구해줍니다.
        }
        
        double average = sum / n; // 평균 = (총합) / (명 수)
        double over = 0;//평균을 넘는 사람을 세줄 변수 선언
        for(int j = 0; j < n; j++) {
            if(arr[j] > average) { //배열에 담긴 점수가 평균을 넘으면
                over++; //over에 +1
            }
        }
        printf("%.3lf%%\n", (over/ n) * 100);
    }
}

+ Recent posts