https://www.acmicpc.net/problem/1546
문제
> 시험을 망친 세준이가 점수를 조작한다.
> 가장 높은 점수를 M이라고 한다면 각각 점수/M * 100으로 조작한다.
> 조작한 점수들의 평균을 구해라.
접근
점수를 입력받으면서 각 점수를 비교해 최대점수를 먼저 구한다.
주어진 수식을 구현해 점수를 넣어 새로 성적표를 만들고 평균을 구해 출력한다.
문제해결
> N을 입력받고 실수형 벡터 score에 N만큼 값을 입력받는다.
> N만큼 반복하며 -1로 선언한 max값과 비교해 가장 큰 점수를 max 값에 담는다.
> 또 N만큼 반복하며 수식에 점수를 넣어 계산하고 총합을 구한다.
> 평균을 출력한다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N;
cin >> N;
int max = -1;
float sum = 0;
vector<float> score(N);
for (int i = 0; i < N; i++)
{
cin >> score[i];
if (score[i] > max)
max = score[i];
}
for (int i = 0; i < N; i++)
{
score[i] = score[i] / max * 100;
sum += score[i];
}
cout << sum / N << '\n';
}

후기
높은 점수도 수식에 적용해 100점으로 만들어야 제대로 결과가 나온다. 조작이 과한것 같다.