본문 바로가기

Programming/Algorithm (C++)

[백준 1546번] c언어 :: 평균

#include <stdio.h>
int main(){

	int num;
	int score[1000];
	double change[1000];
	int i;
	double max = 0;
	double sum = 0;
	double avg;

	scanf("%d", &num);

	for (i = 0; i < num; i++) {
		
		scanf("%d", &score[i]);
	}

	for (i = 0; i < num; i++) {
		if (max < score[i]) {
			max = score[i];
		}
	}
	

	for (i = 0; i < num; i++) {
		change[i] = ((score[i] / max) * 100);
	}

	for (i = 0; i < num; i++) {
		
		sum += change[i];
	}

	avg = sum / num;

	printf("%lf", avg);


}

★★★

고칠점

왜 자꾸 평균이 제대로 안나오나 했더니 자료형식을 제대로 안줬던 것!

int double... 제대로 안하면 나누기하면 소수점 아래 몽땅 사라지죠

max, change[1000], sum, avg를 double로 바꿔주니 잘 되더랑

 

그리고 런타임 에러 자꾸 뜨는데 배열 범위 그냥 테스트용으로 작게했는데 잘 굴러가서 몰랐는데

문제 나와있는 것 처럼 ("1000보다 작거나 같다") 크기를 1000으로 바꾸니 된당