p.281 1번에 왜 int data[10] 인지 궁금합니다.
입력된 데이터는 5개인데 배열은 10개로 선언하는 이유가 무엇인가요?
4번째 scanf에서 데이터 10개를 입력해야 하는데 나머지 5개 데이터는 무엇으로 입력되나요?
입력될 때 데이터가 앞에서부터 순차적으로 입력되는 것인지, 뒤에서부터 입력되는 것인지도 알려주세요.
안녕하세요.
배열의 크기는 알고리즘의 이해를 기반으로 코딩된 것입니다.
하지만 디버깅은 임의의 값을 설정하여 수행하는 거승로
순서도에서와 같이 검은색 동그라미 7번과 9번의 내용을 변경하여 수행하는 것처럼
C언어 코드에서도 동일한 5, 3, 9, 10, 8을 디버깅의 샘플값으로 사용한다면 이를 감안하여 배열의 크기를 5로 설정하면 됩니다.
혹 배열의 크기를 10으로 설정한다고 해도
data 배열에는, 참고로 C나 JAVA는 배열의 위치가 무조건 0부터 시작이므로
data[0]에 5
data[1]에 3
data[2]에 9
data[3]에 10
data[4]에 8
data[5]에
data[6]에
data[7]에
data[8]에
data[9]에
와 같이 저장됩니다. 즉 data[5] ~ data[9] 까지는 null 값이 저장되어 있어 정렬 과정에서 의미없는 횟수만 수행하게 되는 것으로 정렬은 정상적으로 수행되어 3 5 8 9 10 으로 출력되게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2018-05-24 10:11:33
안녕하세요.
배열의 크기는 알고리즘의 이해를 기반으로 코딩된 것입니다.
하지만 디버깅은 임의의 값을 설정하여 수행하는 거승로
순서도에서와 같이 검은색 동그라미 7번과 9번의 내용을 변경하여 수행하는 것처럼
C언어 코드에서도 동일한 5, 3, 9, 10, 8을 디버깅의 샘플값으로 사용한다면 이를 감안하여 배열의 크기를 5로 설정하면 됩니다.
혹 배열의 크기를 10으로 설정한다고 해도
data 배열에는, 참고로 C나 JAVA는 배열의 위치가 무조건 0부터 시작이므로
data[0]에 5
data[1]에 3
data[2]에 9
data[3]에 10
data[4]에 8
data[5]에
data[6]에
data[7]에
data[8]에
data[9]에
와 같이 저장됩니다. 즉 data[5] ~ data[9] 까지는 null 값이 저장되어 있어 정렬 과정에서 의미없는 횟수만 수행하게 되는 것으로 정렬은 정상적으로 수행되어 3 5 8 9 10 으로 출력되게 됩니다.
오늘도 즐거운 하루 되세요.