전체 코드
#include <iostream>
int main()
{
double arr[1000];
int N;
double max = 0, sum = 0;
std::cin >> N;
std::cin >> arr[0];
max = arr[0];
for (int i = 1; i < N; i++)
{
std::cin >> arr[i];
if (max < arr[i])
max = arr[i];
}
for (int i = 0; i < N; i++)
{
arr[i] = arr[i] / max * 100;
sum += arr[i];
}
std::cout.precision(15);
std::cout << sum / N;
}
풀이
- 배열 첫값 입력 후 max를 배열 첫값으로 초기화함
- 1부터 N-1까지 반복하는 반복문 : 0번은 미리 작업 했으니 패스
- 배열에 값 입력받음
- 만약 max값보다 배열값이 더 크면 max값 갱신
std::cin >> arr[0];
max = arr[0];
for (int i = 1; i < N; i++)
{
std::cin >> arr[i];
if (max < arr[i])
max = arr[i];
}
- N번 반복하는 반복문
- 배열값을 값/최대점수*100로 갱신(문제에서도 모든 점수를 위와같이 갱신하라 적혀있음)
- sum에 갱신한 값 더함 (sum=총 합)
for (int i = 0; i < N; i++)
{
arr[i] = arr[i] / max * 100;
sum += arr[i];
}
- precision : 입력한 숫자만큼 소수 표시 (예제 출력 8을 최대 소수 표시로 잡음)
- sum(총합)/N(총 개수) 출력으로 평균 출력하기
std::cout.precision(15);
std::cout << sum / N;