문제의 소재
시험을 본 과목 수 N과 N개의 시험점수가 입력된다. 그 중 최고점 M을 찾고 모든 점수를 A/M*100으로 바꾸고 평균을 구하는 문제이다.(A는 임의의 시험점수)
해답
시험점수를 입력받으면서 최대값 max를 찾았다. 각각의 점수는 정수이나, 변환 후에는 부동소수점 수가 될 수 있으므로 double형 배열에 각각의 점수를 저장하고 변환하였다. 모든 점수를 더한 후 N으로 나눠 출력하였다.
// BOJ_1546.cpp
#include<iostream>
#define MAX(a,b) a>b?a:b
using namespace std;
int main()
{
int N, max;
cin>>N;
double score[N], average;
max = 0, average = 0;
for (int i=0;i<N;i++)
{
cin>>score[i];
max = MAX(max,score[i]);
}
for (int i=0;i<N;i++)
{
score[i] = score[i]/max*100;
average += score[i];
}
cout<<average/N<<endl;
return 0;
}
반응형
댓글