[ 백준 4344번 ] 평균은 넘겠지
2021. 11. 22. 10:29ㆍ백준/단계별 문제
백준 4344번 / 5단계 / 평균은 넘겠지
채점 결과는 다음과 같다
메모리 | 시간 | |
1번째 방법 | 1112 KB | 0 ms |
문제 풀이
학생 수 n과 학생 점수 student 배열을 반복적으로 입력받을 사이클 변수 c를 선언해 준다.
1. 학생 수 n 만큼 학생 점수를 입력받고 합계 변수 sum에 학생 점수를 반복을 돌리면서 더해준다, 반복이 끝나면
평균 변수 avg에 평균을 구해 대입해 준다
n = 2
student [0] = 40
student [1] = 60
sum += student [0]
sum = 40
sum += student [1]
sum = 100
avg(50) = sum(100) / n(2)
2. 입력받은 학생 점수들 중 학생 수만큼 반복을 하면서 평균 변수 avg 보다 높으면 카운팅 변수 cnt를 플러스해 준다. 그리고 평균을 넘는 학생 비율을 변수 pass에 대입해 준다.
student [0] = 40 > avg(50) false
student [1] = 60 > avg(50) true / cnt ++
pass = cnt(1) / n(2) * 100
pass = 50
3. 출력 조건에 맞춰 합격비율 pass를 소수점 셋째 짜리까지 출력해 준다
pass = 50
출력 << 50.000%
pass = 40.589123
출력 << 40.589%
코드
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int main() {
int student[1000];
int c, n, i, j;
float avg = 0;
float sum = 0;
float cnt = 0;
float pass = 0;
scanf("%d", &c);
for ( i = 0; i < c; i++ ) {
scanf("%d", &n);
avg = 0;
sum = 0;
cnt = 0;
for ( j = 0; j < n; j++ ) {
scanf("%d", &student[j]);
sum += student[j];
}
avg = sum / n;
for ( j = 0; j < n; j++ ) {
if ( student[j] > avg ) cnt++;
}
pass = cnt / n * 100 ;
printf("%.3f%\n", pass);
}
}
'백준 > 단계별 문제' 카테고리의 다른 글
[ 백준 4673번 ] 셀프 넘버 (0) | 2021.11.29 |
---|---|
[ 백준 15596번 ] 정수 N개의 합 (0) | 2021.11.25 |
[ 백준 8958번] OX퀴즈 (0) | 2021.11.15 |
[ 백준 1546번 ] 평균 (0) | 2021.11.12 |
[ 백준 3052번 ] 나머지 (0) | 2021.11.12 |