#25. [백준_C언어] 1546 : 평균

 

 입력 코드 

#include <stdio.h>

main() {
	int N;
	double M;
	scanf("%d", &N);

	int i;
	double sum = 0.0, mean, ans;
	double s[1000];

	for (i = 0; i < N; i++) {
		scanf("%lf", &s[i]);
		sum += s[i];
	}

	M = s[0];
	for (i = 0; i < N; i++) {
		if (s[i] > M)
			M = s[i];
		else
			M = M;
	}

	mean = sum / N;
	ans = (double)mean * 100 / M;

	printf("%lf\n", ans);
}

 

 코드 설명 

반복문, 조건문, 형식지정자 이용하는 문제

#include <stdio.h>

main() {
	int N, M;
	scanf("%d", &N);

	int i, sum = 0, mean, ans;
	int s[1000];

	for (i = 0; i < N; i++) {
		scanf("%d", &s[i]);
		sum += s[i];
	}

	M = s[0];
	for (i = 0; i < N; i++) {
		if (s[i] > M)
			M = s[i];
		else
			M = M;
	}

	mean = sum / N;
	ans = mean * 100 / M;

	printf("%d\n", ans);
}

처음에는 입력받은 점수를 문자열에 넣고 하나씩 비교하면서 최고점을 찾고, 어차피 모든 점수에 100/M을 곱하고 평균을 구하나 평균을 구하고 거기에 100/M을 곱하나 똑같으니까 평균을 구하고 그 값에 100/M을 곱했다.

 

그런데 소수점 제대로 출력이 되지 않았다. 형식지정자 때문에 몇 번을 계속 실패했다. 

위에서 실수값을 받으면서 정수값을 받는 형식지정자로 받아서 그런 것 같았다.

 

 문제 출처 

www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net