본문 바로가기
7장 기타/백준 BOJ

[백준/BOJ] 1546번 평균 (C++)

2021. 5. 10.
 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

문제의 소재

시험을 본 과목 수 N과 N개의 시험점수가 입력된다. 그 중 최고점 M을 찾고 모든 점수를 A/M*100으로 바꾸고 평균을 구하는 문제이다.(A는 임의의 시험점수) 

해답

시험점수를 입력받으면서 최대값 max를 찾았다. 각각의 점수는 정수이나, 변환 후에는 부동소수점 수가 될 수 있으므로 double형 배열에 각각의 점수를 저장하고 변환하였다. 모든 점수를 더한 후 N으로 나눠 출력하였다.

// BOJ_1546.cpp
#include<iostream>
#define MAX(a,b) a>b?a:b
using namespace std;

int main()
{
    int N, max;
    cin>>N;
    double score[N], average;
    
    max = 0, average = 0;
    for (int i=0;i<N;i++)
    {
        cin>>score[i];
        max = MAX(max,score[i]);
    }
    for (int i=0;i<N;i++)
    {
        score[i] = score[i]/max*100;
        average += score[i];
    }
    cout<<average/N<<endl;

    return 0;
}
반응형

댓글