백준(C언어) 풀이/1차원 배열

백준(C) 1546번 평균 풀이

개발윗미 2021. 7. 12. 21:38

C로 구현한 1546번 평균 구하기 문제 풀이입니다.

#include <stdio.h>

int main() {
    int num=0;
    double score[1000] = {0};
    double max=0, avg = 0, result=0;
    scanf("%d", &num);
    for(int i=0; i<num; i++) {
        scanf("%lf", &score[i]);
        if(score[i] > max)
            max = score[i];
    }
    for(int j=0; j<num; j++) {
        score[j] = score[j]/max*100;
        avg += score[j];
        result = avg/(double)num;
    }
    printf("%lf", result);
}

 

평균을 구하기 위해 배열 score과 변수 max, avg, result는 double형으로 선언합니다.

평균을 구하기 전에 문제에서 요구하는 최대값을 구하는 작업을 먼저 하여 max 변수에 삽입해줍니다.

첫번째 for문이 끝나 max값이 최종적으로 정해지면 두번째 for문으로 넘어가 작업을 해줍니다. 평균을 구하는데 
결과값은 실수형이고 num은 정수형이기 때문에 변수 num을 double형으로 강제 형변환을 시켜줍니다.


https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net