#40. 백준 번 문제 풀이: 평균 | 문제 원본 보기 |
--입력-- 3 40 80 60 --출력-- 75.0
입력된 값들에서 최댓값을 찾고, 다시 입력된 값들을 계산해서, 평균을 구해야 한다. 즉, 입력된 값들을 계산해야 하므로, 일단 값을 저장해 두어야 한다. 과목 갯수가 정해지지 않았으므로 배열에 저장해 두면 편하다. -- 배열[1000] #최대 과목수 1000개 이므로 루프 과목수만큼 입력받은 값을 배열에 저장 최대값 저장 루프 과목수만큼 저장된 과목들 점수를 점수/M*100으로 계산 해서 합산 평균계산 후 출력 ---
정수/정수 를 하게 되면 정수값이 나오므로, 여기서는 소수점까지 정확도를 원하기 때문에 정수형을 double로 형변환 후 계산한다. (double)a[i]/max*100;
#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;
}