#include <stdio.h>
int main(){
int num;
int score[1000];
double change[1000];
int i;
double max = 0;
double sum = 0;
double avg;
scanf("%d", &num);
for (i = 0; i < num; i++) {
scanf("%d", &score[i]);
}
for (i = 0; i < num; i++) {
if (max < score[i]) {
max = score[i];
}
}
for (i = 0; i < num; i++) {
change[i] = ((score[i] / max) * 100);
}
for (i = 0; i < num; i++) {
sum += change[i];
}
avg = sum / num;
printf("%lf", avg);
}
★★★
고칠점
왜 자꾸 평균이 제대로 안나오나 했더니 자료형식을 제대로 안줬던 것!
int double... 제대로 안하면 나누기하면 소수점 아래 몽땅 사라지죠
max, change[1000], sum, avg를 double로 바꿔주니 잘 되더랑
그리고 런타임 에러 자꾸 뜨는데 배열 범위 그냥 테스트용으로 작게했는데 잘 굴러가서 몰랐는데
문제 나와있는 것 처럼 ("1000보다 작거나 같다") 크기를 1000으로 바꾸니 된당
'Programming > Algorithm (C++)' 카테고리의 다른 글
[백준 2750번] c언어 :: 수 정렬하기 (0) | 2020.12.27 |
---|---|
[백준 1065번] c언어 :: 한수 (1) | 2020.12.27 |
[백준 4344번] c언어 :: 평균은 넘겠지 (0) | 2020.12.27 |
[백준 15596번] c언어 :: 정수 N개의 합 (0) | 2020.12.25 |
[백준 2562번] c언어 :: 최대값, 번호 출력 (0) | 2020.12.25 |