1546. 평균

박진우·2023년 4월 7일
0

문제 링크:

https://acmicpc.net/problem/1546

코드(C):

#include <stdio.h>

int main(void) {
	int subjects = 0;
	int scores[1000];
	int max = -1;
	int i = 0;
	double new_scores[1000];
	double average = 0.0;
	scanf("%d", &subjects);
	for (i = 0; i < subjects; i++) {
		scanf("%d", &scores[i]);
		if (scores[i] > max) max = scores[i];
	}
	for (i = 0; i < subjects; i++) {
		new_scores[i] = (double)scores[i] / max * 100.0;
		average += new_scores[i];
	}
	average /= (double)subjects;
	printf("%f", average);

	return 0;
}

풀이:

이 문제는 과목 수와 각 과목의 점수를 입력받고, 과목 중 최고 점수를 M이라고 두고 모든 점수를 점수 * M / 100으로 연산하고 그 점수로 평균을 구하는 문제이다.
subjects라는 변수를 만들어 과목 수를 입력받고, 입력받은 과목 수에 기반하여 scores에 점수를 입력받는다. 그리고 최고 점수를 구하기 위해 max 변수를 -1로 초기화하고, 점수를 입력 받을 때마다 max보다 입력받은 점수가 더 크면 max를 입력받은 점수로 바꾸어 최고점수를 구한다. 입력이 끝나면 점수 하나하나에 연산을 적용하여 new_scores라는 배열에 저장함과 동시에 평균값을 구하기 위해 average에 모든 새로운 점수를 더하고, 연산이 끝나면 average값을 과목 수로 나누어 평균값을 구하고 출력한다.

profile
SRIHS Infosec

0개의 댓글