본문 바로가기

백준/C

[BaeKJoon/C] 백준4344 c 평균은 넘겠지

반응형

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

문제

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

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

 

풀이

n명의 점수를 다 더해서 평균을 낸 다음 각각 점수가 평균을 넘는지 카운트를 새고 그 비율을 출력한다.

 

코드

#include <stdio.h>
 
int main() {
 
    int n,c;
    int arr[1000];
    scanf("%d",&c);
 
    for(int i=0; i<c; i++){
        
        int sum=0;
        double avg=0; // sum을 n으로 나누면 소수점이 있을 수 있기때문에 double로 선언한다.
        int count=0; // 점수가 평균을 넘는지 카운트
        scanf("%d",&n);
 
        for(int j=0; j<n; j++){
 
            scanf("%d",&arr[j]);
            sum+=arr[j];
 
        }
 
        avg=(double)sum/n; //avg 공식은 위에 있는 arr[i]가 sum에 다 들어가서 더해진 다음에 선언한다.
// 이 공식이 sum+=arr[i]위에 선언된다면 이상한 값이 나온다.

        for(int j=0; j<n; j++){
 
            if(arr[j]>avg) // 여기도 마찬가지로 avg공식이 다 맞춰줬으면 이 조건을 수행한다.
            count++;
 
        }
 
        printf("%.3lf%%\n",(double)count/n*100);
// 소수점 세자리 입력할때는 .3lf로 지정해주고 %를 나타내고 싶으면 하나가 아닌 두개%%를 입력받는다.
    }
    
}
cs

 

반응형

'백준 > C' 카테고리의 다른 글

[BaeKJoon/C] 백준2884 c 알람 시계  (2) 2021.05.20
[BaeKJoon/C] 백준3046 c R2  (0) 2021.05.20
[BaeKJoon/C] 백준5337 c 웰컴  (0) 2021.05.20
[BaeKJoon/C] 백준5565 c 영수증  (0) 2021.05.20
[BaeKJoon/C] 백준8958 c OX퀴즈  (0) 2021.05.20