본문 바로가기
카테고리 없음

백준 1546번 : 평균 [C]

by 대니스 2022. 7. 27.

주소 : https://www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

 

소스 코드 : 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
double ch(double sc, double m)
{
return sc / m * 100;
}
int main()
{
int i;
double n = 0;
double sum = 0;
double max = 0;
double score[1001];
double change[1001];
scanf("%lf", &n);
for (i = 0;i < n;i++)
{
scanf("%lf", &score[i]);
if (score[i] > max)
max = score[i];
}
for (i = 0;i < n;i++)
{
change[i] = ch(score[i], max);
sum = sum + change[i];
}
printf("%lf", sum/n);
}

 

마무리 : 먼저 최댓값을 알아야하기 때문에 반복문으로 최댓값을 알아내고 그 다음 점수 변환하는 함수를 만들어 점수를 변환한 뒤 평균을 구하면 된다. 굳이 함수를 만들지 않고 메인 함수 내에서 코드를 짜도 된다. 절대오차 또는 상대오차가 10^-2 이하이면 정답이라고 되어있는데 소수를 제한하라는 말은 아니다.