"대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다."
귀엽네,,,
n명의 학생들에게 점수를 받아서 평균을 계산하고,
평균을 넘는 학생들이 몇 퍼센트인지 반올림하여 소수점 셋째 자리까지 출력하는 문제다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <iostream>
using namespace std;
int main(void) {
int test_case;
float stu_num, cnt = 0, sum = 0;
cin >> test_case;
for (int i = 0; i < test_case; i++) {
float arr[1000]; cnt = 0; sum = 0;
cin >> stu_num;
for (int j = 0; j < stu_num; j++) {
cin >> arr[j];
sum += arr[j];
}
for (int k = 0; k < stu_num; k++) {
if (arr[k] > sum / stu_num) {
cnt++;
}
}
cout << fixed;
cout.precision(3);
cout << cnt / stu_num * 100 << "%" << endl;
}
}
|
cs |
배열에 학생들 점수를 받으면서 총합도 계산해줌
평균을 넘는 학생들을 count 하고 (코드의 cnt) 반올림하여 소수점 셋째 자리까지 출력해주면 된다
반올림에 필요한 코드는 아래 두줄
1
2
|
cout << fixed;
cout.precision(3);
|
cs |
평균의 자릿수를 모르니까 fixed 해주고 precision(n)으로 자릿수를 정한다
(fixed 안 하면 정수부 분과 소수 부분을 합쳐서 3자리로 만듦)
'Algorithm > BOJ' 카테고리의 다른 글
[백준 알고리즘/BOJ/C++] 4673 셀프 넘버 (0) | 2021.01.12 |
---|---|
[백준 알고리즘/BOJ/C++] 15596 정수 N개의 합 (0) | 2021.01.12 |
[백준 알고리즘/BOJ/C++] 8958 OX퀴즈 (0) | 2021.01.11 |
[백준 알고리즘/BOJ/C++] 1546 평균 (0) | 2021.01.11 |
[백준 알고리즘/BOJ/C++] 3052 나머지 (0) | 2021.01.11 |