선택정렬하는 순서도에서 배열에 10개의 자료가 입력되는부분만 발췌한건데 오류가 있는것 같습니다.
10개의 자료를 입력받는데 M이10보다 클때까지 입력받게되면 Data[11]까지 입력받게 되는거 아닌가요?
M이 10보다 작거나 같은때까지 반복하다가 내려오는게 맞지않나요?
배열의 크기가 DATA[10]로 초기화되어있는데 이렇게되면 DATA[11]까지 입력받게 되는게 아닌지....
빠른 답변부탁드립니다.
※사진같이 첨부합니다.
안녕하세요.
직접 과정을 하나씩 따라가 보면서 확인하면 됩니다.
즉 디버깅을 수행해 보는 것이죠.
m은 0으로 초기화된 후
m = m + 1에 의해 m은 1이 됩니다.
data[m], 즉 data[1]을 입력받습니다.
m : 10을 비교하는데 m은 1이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
m = m + 1에 의해 m은 2가 됩니다.
data[m], 즉 data[2]를 입력받습니다.
m : 10을 비교하는데 m은 2이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
.
.
.
m = m + 1에 의해 m은 9가 됩니다.
data[m], 즉 data[9]를 입력받습니다.
m : 10을 비교하는데 m은 9이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
m = m + 1에 의해 m은 10이 됩니다.
data[m], 즉 data[10]을 입력받습니다.
m : 10을 비교하는데 m은 10이므로 10보다 작지 않습니다. 즉 크거나 같다는 조건에 만족하므로 입력 과정을 마치고 아래쪽으로 제어를 이동합니다.
위와 같은 과정으로 진행하므로 m이 10일 때까지 data[1] ~ data[10]을 입력받습니다.
오늘도 즐거운 하루 되세요.
-
*2018-06-22 09:48:11
안녕하세요.
직접 과정을 하나씩 따라가 보면서 확인하면 됩니다.
즉 디버깅을 수행해 보는 것이죠.
m은 0으로 초기화된 후
m = m + 1에 의해 m은 1이 됩니다.
data[m], 즉 data[1]을 입력받습니다.
m : 10을 비교하는데 m은 1이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
m = m + 1에 의해 m은 2가 됩니다.
data[m], 즉 data[2]를 입력받습니다.
m : 10을 비교하는데 m은 2이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
.
.
.
m = m + 1에 의해 m은 9가 됩니다.
data[m], 즉 data[9]를 입력받습니다.
m : 10을 비교하는데 m은 9이므로 10보다 작습니다. 그래서 다시 입력을 수행합니다.
m = m + 1에 의해 m은 10이 됩니다.
data[m], 즉 data[10]을 입력받습니다.
m : 10을 비교하는데 m은 10이므로 10보다 작지 않습니다. 즉 크거나 같다는 조건에 만족하므로 입력 과정을 마치고 아래쪽으로 제어를 이동합니다.
위와 같은 과정으로 진행하므로 m이 10일 때까지 data[1] ~ data[10]을 입력받습니다.
오늘도 즐거운 하루 되세요.