작성
·
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 에 매 반복마다 입력을 받고 있기 때문입니다.
(참고로 공부하실 때 디버깅 꼭 병행해보시길 권합니다!)
분명히 입력했을때는 정상적으로 숫자가 들어가는데, min, max 함수를 작동할때만 값이 쓰레기 값? 이 들어가서요.