#40. 백준 번 문제 풀이: 평균 문제 원본 보기
세준이 시험 점수의 최댓값은 M 이다. 나머지 모든 점수를 점수/M*100 로 고쳤다. 평균을 새로 구하시오. 입력: 첫줄에 시험 과목 수 N, 둘째 줄에 과목별 성적(공백 구분) 출력: 새로운 평균. 소수 포함
입력/출력
--입력--
3
40 80 60
--출력--
75.0
문제풀이+해설
입력된 값들에서 최댓값을 찾고,
다시 입력된 값들을 계산해서, 평균을 구해야 한다.
즉, 입력된 값들을 계산해야 하므로, 일단 값을 저장해 두어야 한다.
과목 갯수가 정해지지 않았으므로 배열에 저장해 두면 편하다.
--
배열[1000] #최대 과목수 1000개 이므로
루프 과목수만큼
  입력받은 값을 배열에 저장
  최대값 저장
루프 과목수만큼
  저장된 과목들 점수를 점수/M*100으로 계산 해서 합산
평균계산 후 출력
---
정수/정수 를 하게 되면 정수값이 나오므로, 여기서는 소수점까지 정확도를 원하기 때문에 정수형을 double로 형변환 후 계산한다. (double)a[i]/max*100;
code sol.
#include <iostream>
using namespace std;

int main() {
  int i, n, max = 0;
  int a[1000]; // 과목점수 입력 받을 배열
  double sum = 0.0; // 합계 점수를 위한 변수

  cin >> n; // 과목수를 입력받아 정수로 변환 후 대입
  for(i = 0; i < n; i++) {
    cin >> a[i]; // 과목 점수를 배열에 저장
    if(max < a[i]) max = a[i]; // max 값보다 크면 변경
  }

  for(i = 0; i < n; i++) { // 점수를 수정하기 위해 루프
    sum += (double)a[i]/max*100; // 점수를 수정해서 합산. 
    // 실수형 연산을 위해 정수형을 double 로 형변환
  }
  cout << sum/n; // 총합을 과목수로 나누어 새로운 평균값 출력
  return 0;
}
© 코드솔 - CodeSol. All Rights Reserved.