백준 4334번
https://www.acmicpc.net/problem/4344
4344번: 평균은 넘겠지
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
www.acmicpc.net
1. 문제
대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.
(평균 값을 구한 후 평균 점수보다 높은 비율을 구하라 )
2. 내가 작성한 알고리즘
#include <stdio.h>
int main()
{
int input,number;
float score[1000];
scanf("%d", &number);
for (int i = 0; i < number; i++) {
scanf("%d", &input);
float sum_score = 0;
float p = 0;
for(int i = 0; i < input; i++) {
scanf("%f", &score[i]);
sum_score = score[i] + sum_score;
}
for (int i = 0; i < input; i++) {
if ((sum_score / input) < score[i]){
p=p+1;
}
}
printf("%.3f%%\n",(p/ input)*100);
}
return 0;
}
3. 참고하여 수정 한 알고리즘
#include <stdio.h>
int main()
{
int input,number;
scanf("%d", &number);
for (int i = 0; i < number; i++) {
scanf("%d", &input);
int score[input];
int sum_score = 0;
int p = 0;
for(int i = 0; i < input; i++) {
scanf("%d", &score[i]);
sum_score = score[i] + sum_score;
}
for (int i = 0; i < input; i++) {
if ((sum_score / input) < score[i]){
p=p+1;
}
}
printf("%.3f%%\n",(float)p/ input*100);
}
return 0;
}
4. 이번 알고리즘을 통해 배운 점
배열에는 상수만 넣을 수 있는 것이 아니라 입력받은 변수를 넣을 수도 있다.
실수를 출력하기 위해서는 무조건 실수를 사용하여 실수를 출력하는 것이 아닌 변수에 (float)의 형변환을 해주면 된다.
'C > 백준 알고리즘 (c언어)' 카테고리의 다른 글
1차원배열 practice 03_OX퀴즈 (0) | 2021.06.30 |
---|---|
1차원 배열 practice 02_최댓값 구하기 (0) | 2021.06.29 |
for문 practice 02_ A+B-4 (0) | 2021.06.28 |
while문 practice 01_더하기 싸이클 (0) | 2021.06.28 |
for문 practice 01_x보다 작은수 (0) | 2021.06.26 |