배열로 입력받아 평균과 비교하는 함수
덕이
질문 제목 : 배열로 입력받아 평균과 비교하는 함수질문 요약 :정해지지 않은 개수의 양의 정수를 순차적으로 읽어 들이며 현재까지의 평균값과 이보다 큰 숫자,작은숫자,같은숫자 의 개수를 출력하는 프로그램을 작성하라. 음수가 들어오면 프로그램 종료.
질문 내용 :
#include stdio.h
void main()
{
int num[5],i,j,sum=0,avg=0,big,same,small;
for(i=0;i5;i++)
{
printf(입력 : );
scanf(%d,&num[i]);
if(num[i]0)
{
printf(프로그램종료 !);
break;
}
sum+=num[i];
avg=sum/(i+1);
big=same=small=0;
for(j=0;ji+1;j++)
{
if(num[j]avg)
big++;
else if(num[j]==avg)
same++;
else
small++;
}
printf(출력 : 평균:%d 큰수:%d 같은수:%d 작은수 : %d\n,avg,big,same,small);
}
}
수업시간에 배운 코드인데요..
예를들어서, 일단 3개만 입력받으면 5 11 2 를 입력했다고 치면요,
결과값이
입력 : 5
출력 : 평균 5 큰수 0 같은수 1 작은수 1 //평균과 입력값이 같으니까 same++되서 1나올거고
입력 : 11
출력 : 평균 8 큰수 1 같은수 0 작은수 1 //평균은 8로 될거고, 입력이 평균보다 크므로 큰수(big) ++되서 1이 나올건데요.
//왜 작은 수도 증가되는지 모르겠습니다. (1)
입력 : 2
출력 : 평균 6 큰수 1 같은수 0 작은수 2 // 평균 6이될건데, 2는 평균보다 작으므로 small 이 ++되서 1이 되겠죠? 근데 2가..
// 코드에는 small big same 을 중간에 0 으로 초기화 시켰는데 큰수 & 작은수가가 // 그대로 내려오는지 궁금합니다. (2)
(1) 과 (2) 가 궁금합니다 ㅠ