백준 C, C++ 문제(소스코드만)

1546번, 평균

swchung09 2025. 4. 8. 00:22

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

이 문제는 입력받은 점수중 최댓값은 산출하고, 다른 점수를 원점수/최댓값*100으로 변환한 후 평균을 구하는 문제이다. 이른 통해 최고점이 70이고 다른 한 과목이 50점이면, 그 과목은 71.43점이 된다.


우선 기본 라이브러리를 불러온다.

#include <stdio.h>

그 다음 과목의 수를 입력받는다.

int n;
scanf("%d", &n);

이제 for문에서 과목을 배열 형태로 입력 받고, 삼항 연산자로 최댓값을 산출한다.

int arr[100];
int m = -1;
for (int i = 0; i < n; i++){
    scanf("%d", &arr[i]);
    m = (m > arr[i])? m : arr[i];
}

이제 for문으로 원점수/최댓값*100으로 변환하여 평균을 구한다.

 

double s = 0;
for (int i = 0; i < n; i++){
    s += ((double)arr[i]/(double)m)*100.0;
}

이제 평균을 출력하면 된다.

printf("%.2\n", s/(double)n);

최종 코드

#include <stdio.h>
int main(){
    int arr[1000];
    int n, m = -1;
    double s = 0;
    scanf("%d", &n);
    for (int i = 0; i < n; i++){
        scanf("%d", &arr[i]);
        m = (m > arr[i])? m : arr[i];
    }
    for (int i = 0; i < n; i++){
        s += ((double)arr[i]/(double)m)*100.0;
    }
    printf("%.2f\n", s/(double)n);
}

'백준 C, C++ 문제(소스코드만)' 카테고리의 다른 글

10811번, 바구니 뒤집기  (0) 2025.04.08
3052번, 나머지  (0) 2025.04.08
5597번, 과제 안 내신 분..?  (0) 2025.04.07
10813번, 공 바꾸기  (0) 2025.04.07
10810번, 공 넣기  (0) 2025.04.07