주어진 점수를 배열에 입력받고 최대값을 max_element를 통해 구하고 이를 통해 새로운 점수의 합을 계산

평균을 구해주면 된다.

이때 나눗셈을 할때 static_cast를 통해 double로 캐스팅을 해주어야 값의 손실이 없다. 그리고 소숫점 6자리까지 출력하게 해주는 코드는 다음과 같다.

  cout << fixed;
  cout.precision(6); // 소수점 6자리까지 출력

 

 

정답코드

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;


int main()
{
    int n;
    cin >> n;
    vector<int> v(n);
    for (int i = 0;i<n;i++)
    {
        cin >> v[i];
    }

    int m = *max_element(v.begin(), v.end());
    double sum = 0.0;
    for (int i:v)
    {
        sum += (static_cast<double>(i) / m * 100);
    }

    cout << fixed;
    cout.precision(6); // 소수점 6자리까지 출력
    cout << sum / n << "\n"; // 평균 출력

    return 0;
}

+ Recent posts