https://www.acmicpc.net/problem/4344
문제
첫째 줄에는 테스트 케이스의 개수 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 |