이 문제는 간단한 사칙연산에 대해 묻는 문제이다. 하지만, 소숫점 관련 제한이 붙어 있어서 조금 다르게 생각해보았다.
보통의 사람이라면 모든 숫자를 문제에서 제시한 방법대로 바꾼 후 모두 더하고, 그 이후에 평균을 구하려고 생각할 것이다.
A, B, C가 입력되었다고 가정하고, C가 최댓값 M이면
Average = {(A / C) 100 + (B / C 100) + (C / C * 100)} / 3
이 된다. 하지만, 이 식을 조금만 고치면 계산하기 편한 식이 된다.
Average = (100 A + 100 B + 100 * C) / C / 3
이 식을 기반으로, 입력받은 값의 최댓값을 구하는 함수를 만들고 코드를 구성해보았다.
#include <stdio.h>
#include <stdlib.h>
int max(int*, int);
int main(void) {
	int num;
	scanf("%d", &num);
	int* array = (int*)malloc(sizeof(int) * num);
	for (int i = 0; i < num; i++) {
		scanf("%d", &array[i]);
	}
	int max_num = max(array, num);
	int total = 0;
	for (int i = 0; i < num; i++) {
		total += array[i] * 100;
	}
	printf("%f\n", (double)(total / max_num) / num);
}
int max(int* a, int n) {
	int max = -1;
	for (int i = 0; i < n; i++) {
		if (a[i] > max) {
			max = a[i];
		}
	}
	return max;
}
입력받는 숫자들의 개수는 입력마다 다르기 때문에, 이를 맞춰주기 위해 동적배열 malloc을 사용하였다.