반응형

안녕하세요, 츄르 사려고 코딩하는 집사! 코집사입니다.

이번 글은 백준 알고리즘 4344번 평균은 넘겠지 C언어 문제입니다.



1. 문제

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



2. 입력

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

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

5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91



3. 출력

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

40.000%
57.143%
33.333%
66.667%
55.556%



4. 풀이

1) int형 변수 C에 테스트 케이스 값 입력

2) 예제 입력을 보면 테스트 케이스 수에 따라 입력을 할 수 있으므로 for문을 0부터 C까지 반복

3) int형 변수 N에 학생의 수 입력

4) N값에 따른 배열값을 입력 받고, 총합(sum)을 구하고 평균을 구한다.

5) for문을 통해 배열에 있는 값들을 평균과 비교하여 count를 증가시켜 몇 개가 있는지 확인

6) count*100/n으로 printf


5. 소스 코드

#include<stdio.h>

int main()

{

int C; // 테스트 케이스의 개수

int N; // 학생의 수

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

for(int i=0;i<C;i++)

{

int A[1000];

int sum=0;

double average=0.0; 

scanf("%d",&N);

for(int i=0;i<N;i++)

{

scanf("%d",&A[i]);

sum+=A[i];

}

average = (double)sum / N;

int count = 0;

for(int i=0;i<N;i++)

{

if(average<A[i]) count++;

}

printf("%.3lf%%\n",(double)count*100/N);

}

return 0;

}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기