- 소수점 표현
cout<<fixed // 소숫점 아래 값을 고정하는 표현
--> cout.setf(ios::fixed); 로 사용할 수 있음 (setf는 설정을 해주는 표현 / unsetf는 설정을 해제하는 표현)
precision(3) // cout<<fixed; 와 함께 사용 시 소수점 아래 3으로 고정
precision(3) 만 사용 시, 자리수 설정
ex) 12.3456를 precision(3) 하면, 12.3 출력
12.3456를 cout<<fixed; cout.precision(3); 하면, 12.345 출력
#include<iostream>
int main() {
int C,N,cnt,sum,avg;
int score[1000] = {};
double result;
std::cin >> C;
for (int i = 0; i < C; i++) {
cnt = 0, sum = 0, avg = 0;
std::cin >> N;
for (int j = 0; j < N; j++) {
std::cin >> score[j];
sum += score[j];
}
avg = sum / N;
for (int j = 0; j < N; j++) {
if (score[j] > avg)
cnt++;
}
result = (double)cnt / N * 100;
std::cout.setf(std::ios::fixed);
std::cout.precision(3);
std::cout << result << "%\n";
}
}
C 는 케이스 개수
N 은 학생의 수
cnt 는 평균을 넘는 학생의 수
sum 은 학생들의 모든 점수의 합
avg 는 학생들의 모든 점수의 평균 -> sum / N
score[1000] 은 크기가 1000인 배열 -> 학생의 수가 1명 이상 1000명 이하이므로 배열의 크기를 1000으로 잡음
result 는 점수가 평균 이상인 학생들의 비율 -> cnt / N * 100
ex) C=2 이고, 입력 값이 아래와 같을 경우,
2
5 50 50 70 80 100
7 100 95 90 80 70 60 50
i=0 , N=5
score[i] | 점수 | 평균을 넘는지 여부 |
score[0] | 50 | F |
socre[1] | 50 | F |
socre[2] | 70 | F |
socre[3] | 80 | T |
socre[4] | 100 | T |
sum = 50 + 50 + 70 + 80 + 100 = 350
avg = 350 / 5 =70
평균을 넘는 학생 수 3명 -> cnt = 2
평균을 넘는 학생의 비율 -> result = cnt / N * 100 = 2 / 5 * 100 = 40
result는 double형으로 정의되었고, 반올림하여 소수점 셋째 자리까지 출력해야하므로,
std::cout.setf(std::ios::fixed);
std::cout.precision(3);
을 사용하여 40.000을 출력
i=1 , N=7
score[i] | 점수 | 평균을 넘는지 여부 |
score[0] | 100 | T |
socre[1] | 95 | T |
socre[2] | 90 | T |
socre[3] | 80 | T |
socre[4] | 70 | F |
socre[5] | 60 | F |
socre[6] | 50 | F |
sum = 100 + 95 + 90 + 80 + 70 + 60 + 50 = 545
avg = 545 / 7 = 77.85714285714286 ..... -> int형 므로
평균을 넘는 학생 수 3명 -> cnt = 4
평균을 넘는 학생의 비율 -> result = cnt / N * 100 = 4 / 7 * 100 = 57.14285714285714 .....
result는 double형으로 정의되었고, 반올림하여 소수점 셋째 자리까지 출력해야하므로,
std::cout.setf(std::ios::fixed);
std::cout.precision(3);
을 사용하여 57.143을 출력
'코딩테스트 > programming_C++' 카테고리의 다른 글
baekjoon #4673_셀프넘버_c++ (0) | 2021.10.25 |
---|---|
baekjoon #15596_정수 N개의 합_c++ (0) | 2021.10.25 |
baekjoon #8958_OX퀴즈_c++ (0) | 2021.10.25 |
baekjoon #2577_숫자의 개수_c++ (0) | 2021.10.24 |
baekjoon #10818_최소, 최대_c++ (0) | 2021.10.24 |