• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

7.11 예제 질문

21.11.14 19:37 작성 조회수 159

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

안소님의 프로필

안소

2021.11.14

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

안녕하세요

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

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

IEYEI님의 프로필

IEYEI

질문자

2021.11.15

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