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