프로그래밍 언어/C

C언어 백준 4344번 해설

happy_life 2021. 9. 1. 14:56

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

 

4344번: 평균은 넘겠지

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

www.acmicpc.net

 

문제

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

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. d각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

 

 

 

풀이

 

#include <stdio.h>


int main()
{

	int C; //테스트케이스
	int N; //학생수 
	
	printf(" -----평균은 넘겠지-----\n");

	printf("Test case 입력하시오\n");
	scanf("%d", &C);

	//--Test case 'for'--
	for (int i = 0; i < C; i++) { 
		float arr[1000];
		float a = 0; //float 를 0으로 초기화해도 상관없음 아라서 0.0000이 됨
		float b = 0;
		printf("학생수를 입력하시오\n");
		scanf("%d", &N);

		printf("점수를 입력하시오\n");
		//--N안의 for 문--
		//입력받고 평균 구하기
		for (int j = 0; j < N; j++) {

			
			scanf("%f", &arr[j]); //점수입력받고

			a = a + arr[j] / N; //평균 구하기
			
		}
		
		
		// 평균 넘는 학생 수 구하기
		for (int k = 0; k < N; k++) {

			if (arr[k] > a) {

				
				b = b + 1;
				
			}

		}
		
		printf(" 평균 넘는 학생 수의 비율: %.3%%f\n", 100*(b / N));
		

		//평균 넘는 학생 수 비율 출력하기

		
	}
	return 0;
}

 

의문점: average = average + (double)arr[j] / N;

  

'프로그래밍 언어 > C' 카테고리의 다른 글

C언어 백준 11720 해설  (1) 2021.09.03
C언어 1065번 해설 한수  (0) 2021.09.02
C언어 백준 8959번  (0) 2021.09.01
C언어 백준 1546번  (0) 2021.08.31
C언어 백준3052 해설  (0) 2021.08.31