안녕하세요?
교재 392페이지 예상문제은행 문제10번에서 f(행의 끝 위치를 지정해 주는 변수) 값 구하는 식 관련 질문이 있습니다.
일단 문제를 분석해보면,
j(열) 행의 시작위치(s) 행의 끝 위치(f)
0 0 6
1 1 5
2 2 4
3 3 3
4 2 4
5 1 5
6 0 6
위와 같습니다. 그리고 배열의 중간 열번호 ct는 3입니다.
c언어에서 for (j=0; j<=n; j++)로 j가 0부터 시작하는데요.
f는 3(ct값)보다 작을 경우, f=n-j;를 수행하므로, 현재 n은 7로 초기화된 상태에서 시작되니
7-0이면 f가 0이 되는거 아닌가요? 마찬가지로 f가 3보다 클 경우(else조건) f=j+1;을 수행하게 되는데,
j가 6이라고 가정하면, 6+1은 7이되어 f가 7이 되는데 제가 분석한 결과와 다릅니다.
어느 부분이 잘못된 것인지 검토 부탁드립니다.
안녕하세요.
f는 행의 끝 위치를 지정해 주는 변수로
f = n-j; 또는 f = j+1;을 수행한 후 실제 for문에서 q<=f-1까지 진행되므로
j가 0일 때 f는 7이지만 for문에서는 0~6까지 진행됩니다.
for문에서 f-1까지 진행된다는 것을 염두에 두고 디버깅을 수행하면서 값 변화를 살펴보세요.
오늘도 즐거운 하루 되세요.
-
*2017-04-10 09:21:57
안녕하세요.
f는 행의 끝 위치를 지정해 주는 변수로
f = n-j; 또는 f = j+1;을 수행한 후 실제 for문에서 q<=f-1까지 진행되므로
j가 0일 때 f는 7이지만 for문에서는 0~6까지 진행됩니다.
for문에서 f-1까지 진행된다는 것을 염두에 두고 디버깅을 수행하면서 값 변화를 살펴보세요.
오늘도 즐거운 하루 되세요.