인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

IEYEI님의 프로필 이미지
IEYEI

작성한 질문수

홍정모의 따라하며 배우는 C언어

7.11 최대, 최소, 평균 구하기 예제

7.11 예제 질문

작성

·

230

0

평균은 나오는데 최소값, 최대값 함수를 작동하는 과정에서 num 값이 변하는데 무슨 이유일까요?

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <ctype.h>
#include <stdbool.h>

double min(num, pre_num)
{
	return pre_num >= num ? num : pre_num;
}
double max(num, pre_num)
{
	return pre_num >= num ? pre_num : num;
}

int main(void)
{
	double average = 0.0;
	double sum = 0.0;
	double pre_num = 0.0;
	double max_num = 0.0;
	double min_num = 0.0;
	double i = 0.0;
	double num = 0.0;
	bool consider_num = 1;

	while (true)
	{
		consider_num = scanf("%lf", &num);

		if (consider_num == 0)
			break;

		if (i >= 1)
		{
			max_num = max(num, pre_num);
			min_num = min(num, pre_num);
		}

		sum += num;
		pre_num = num;
		i += 1.0;
	}
	average = sum / i;
	printf("%lf, %lf, %lf", average, min_num, max_num);
	return 0;
}

답변 1

0

consider_num = scanf("%lf", &num);

안녕하세요

while 문 내에서 여기서 num 에 매 반복마다 입력을 받고 있기 때문입니다.

(참고로 공부하실 때 디버깅 꼭 병행해보시길 권합니다!)

IEYEI님의 프로필 이미지
IEYEI
질문자

분명히 입력했을때는 정상적으로 숫자가 들어가는데, min, max 함수를 작동할때만 값이 쓰레기 값? 이 들어가서요.

IEYEI님의 프로필 이미지
IEYEI

작성한 질문수

질문하기