배열 0~9까지의 정수중 가장많이 입력받은 빈도수 구하기 질문입니다.
지옥
질문 제목 : 배열 0~9까지의 정수중 가장많이 입력받은 빈도수 구하기 질문입니다.질문 요약 :배열 0~9까지의 정수중 가장많이 입력받은 빈도수 구하기 프로그램소스 해석질문.질문 내용 :
#include stdio.h
int main(void)
{
int i, n, max=0;
int num[10]={0};
printf(0에서 9까지의 정수를 입력하시오.\n);
for(i=0 ; i20 ; i++)
{
printf(남은 횟수: %d 입력:, i);
do
{
scanf(%d, &n);
}while(!(n=0 && n=9));
num[n]++;
}
for(i=0 ; i10 ; i++)
max = (num[i]num[max]) ? i : max;
printf(\n0 ~ 9 중 가장 많이 나온 수는 %d이고, %d번 나왔습니다.\n, max, num[max]);
return 0;
}
소스는 이렇습니다.
그런데 분명 20개받는데 배열은 0~9까지의 길이만 가지고있습니다.
또한 프로그램에서 배열의선언즉int num[10]={0}; 이부분을 int num[10]; 이렇게 초기화를 제거했더니
결과부분에서 %d번 나왔습니다가 이상한 쓰레기값으로 보이더라구요..
어렵네요... 궁금한점은 배열의 초기화가 왜 10까지인지 그리고 초기화를 0으로 첫번째를 해주는이유가 궁금합니다..
소스를 아예 풀이해주시면 감사하구요 ㅠㅠ
이해는 되는데 막상 풀라고보면 안풀려요... 결국 답을 찾게되고.. 답을봐도 이해가안되고...