백준 단계별로 풀어보기(C++)/4)1차원 배열

백준 1546) 평균 (C++)

코테 2023. 3. 13. 23:55

전체 코드

#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;