안경잡이 구루루

백준 1546 ( 평균 ) [ C programming ] 본문

C언어(C programming)/문제풀이(백준,BaekJoon)

백준 1546 ( 평균 ) [ C programming ]

구루루(gururu) 2020. 7. 4. 18:44
반응형


나:

#include <stdio.h>
int main() {
	float score[1000],high=0,total=0;
	int N;
	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		scanf("%f", &score[i]);
		if (high < score[i]) high = score[i];
	}
	for (int j = 0; j < N; j++) {
		score[j] = score[j] / high * 100.0;
		total += score[j];
	}
	printf("%f", total /N);
    return 0;
}

완성된 코드는 위와 같다.

flaot 형태로 저장하지 않으면 출력할 때 이상한 값(0.0) 이 나와서 이것 때문에 푸느라 오래걸렸다.

 

#include <stdio.h>
int main() {
	float score[1000],high=0,total=0;
	int N;
	scanf("%d", &N);

	for (int i = 0; i < N; i++) {
		scanf("%f", &score[i]);
		if (high < score[i]) high = score[i];

최대 과목개수만큼 score 배열, 가장 높은 수의 값이 들어갈 변수 high 그리고 새로운 점수들의 합이 들어갈 total 

변수를 만들고 이것들은 출력시 Float 형태로 나타내기 때문에 Float형으로 자료형을 선언해서 이용한다.

입력받을 점수의 개수를 결정하는 N을 선언하고 scanf로 입력값을 받는다.

For 반복문을 통해서 N만틈 과목수를 입력받고 이때 받은 입력값들을 비교하면서 최대값 high를 구한다.

 

	for (int j = 0; j < N; j++) {
		score[j] = score[j] / high * 100.0;
		total += score[j];
	}
	printf("%f", total /N);
    return 0;
}

For 반복문을 통해서 앞에서 구한 high를 이용해서 N만큼 새로운 점수값을 구하고 이들의 점수를 모두 더해 total에    저장한다.

새로운점수들의 모든 값과 전체 개수를 나누고 이를 F형태로 출력하면 문제를 해결할 수 있다.

반응형