[1546] 평균 C++ 백준

pyungjong·2023년 9월 11일

C++ 백준

목록 보기
5/8

백준[1546]

문제

1546번

풀이

  • 입력받은 n의 크기와 같은 배열을 동적 할당한다.
  • 배열에서 최댓값을 구해준다.
  • 문제의 조건과 같이 바꾸어 계산해준다.
#include <iostream>

using namespace std;

int main(void) {
	int n;
	double sum = 0;
	cin >> n;
	int* arr = new int[n];

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

	int max = arr[0];
	for (int i = 0; i < n; i++) {
		if (max < arr[i])
			max = arr[i];
	}

	for (int i = 0; i < n; i++) {
		sum += (double)arr[i] / max * 100;
	}
	cout << sum / n;
}

느낀점

  • 처음 코드는 예상한 값과 전혀 다른 결과가 나왔다.
  • arr[i] / max에서 int형으로 선언되어 있는 변수를 나누었다.
    결과적으로 소수 부분의 값이 없어졌고, 오차가 발생했다.
  • 변수 하나를 double형으로 바꾸어 계산해주었다.
profile
코린이

0개의 댓글