책 내용 질문하기
나비넥타이 배열 질문있습니다.
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
393
조회수
128
작성일
2017-04-06
작성자
첨부파일

2017년 특별개정판

p.392 10번 문제인데요,

if j

{

s=j;

f=n-j:

} 인데

else

{

s= n - (j +1);

f= j + 1;

} 왜 else 뒷 부분은 저렇게 되는지 궁금합니다.

앞 부분은 s=j +1;

f=n- (j+1); 이 되어야하지 않나요?

숫자를 넣어 이해하기 쉽게 설명해주시면 감사하겠습니다!

답변
2017-04-06 09:19:33

안녕하세요.

7행 7열의 크기를 갖는 배열이지만 C언어는 배열의 위치가 0부터 시작합니다.

s는 행의 시작위치를, f는 행의 끝 위치를 지정해 주는 변수입니다.

j

그러므로 j, 즉 열의 위치가 0~6까지 증가됩니다.

중간열(ct)가 3이므로

j가 0, 1, 2로 변화할 때

s, 즉 행의 시작 위치도 0, 1, 2로 변화됩니다.

그러므로 s = j; 입니다.

f, 즉 행의 끝 위치는 6, 5, 4로 변화되는데, 이는

f = n - j;로 구할 수 있습니다.

j가 0일 때 f = 7-0 = 7이 됩니다. 이후 행의 위치로 사용되는 안쪽 for문에서 q <= f-1 까지 진행하므로 결국 행의 끝 위치는 6까지 진행합니다.

같은 원리로 j가 1, 2일 때 f는 6, 5인데, 안쪽 for문에서 실제 적용될 때 행의 끝 위치는 5, 4로 진행됩니다.

중간열(ct) 부터는

j가 3, 4, 5, 6으로 변화할 때

s, 즉 행의 시작 위치도 3, 2, 1, 0으로 변화되는데, 이는

s = n - (j+1);로 구할 수 있습니다.

j가 3일 때 s=7-(3+1) = 3

j가 4일 때 s=7-(4+1) = 2

j가 5일 때 s=7-(4+1) = 1

j가 6일 때 s=7-(4+1) = 0

으로 진행됩니다.

f, 즉 행의 끝 위치는 3, 4, 5, 6으로 j와 동일하게 적용되는데

안쪽 for문에서 실제 적용될 때 q <= f-1까지 진행하므로 -1 될 것을 감안하여

f = j+1;로 적용한 것입니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-04-06 09:19:33

    안녕하세요.

    7행 7열의 크기를 갖는 배열이지만 C언어는 배열의 위치가 0부터 시작합니다.

    s는 행의 시작위치를, f는 행의 끝 위치를 지정해 주는 변수입니다.

    j

    그러므로 j, 즉 열의 위치가 0~6까지 증가됩니다.

    중간열(ct)가 3이므로

    j가 0, 1, 2로 변화할 때

    s, 즉 행의 시작 위치도 0, 1, 2로 변화됩니다.

    그러므로 s = j; 입니다.

    f, 즉 행의 끝 위치는 6, 5, 4로 변화되는데, 이는

    f = n - j;로 구할 수 있습니다.

    j가 0일 때 f = 7-0 = 7이 됩니다. 이후 행의 위치로 사용되는 안쪽 for문에서 q <= f-1 까지 진행하므로 결국 행의 끝 위치는 6까지 진행합니다.

    같은 원리로 j가 1, 2일 때 f는 6, 5인데, 안쪽 for문에서 실제 적용될 때 행의 끝 위치는 5, 4로 진행됩니다.

    중간열(ct) 부터는

    j가 3, 4, 5, 6으로 변화할 때

    s, 즉 행의 시작 위치도 3, 2, 1, 0으로 변화되는데, 이는

    s = n - (j+1);로 구할 수 있습니다.

    j가 3일 때 s=7-(3+1) = 3

    j가 4일 때 s=7-(4+1) = 2

    j가 5일 때 s=7-(4+1) = 1

    j가 6일 때 s=7-(4+1) = 0

    으로 진행됩니다.

    f, 즉 행의 끝 위치는 3, 4, 5, 6으로 j와 동일하게 적용되는데

    안쪽 for문에서 실제 적용될 때 q <= f-1까지 진행하므로 -1 될 것을 감안하여

    f = j+1;로 적용한 것입니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.