책 내용 질문하기
ㄹ 자 배열 C언어 코드 질문 드립니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
350
조회수
291
작성일
2019-08-28
작성자
탈퇴*원
첨부파일

두번째 반복문 조건식에 

for (j = L; j != m + n; j += n) 부분에서 j != m + n 에  + n 이 붙는 이유를 이해 못하겠습니다.

그냥 j != m 으로 해도 되지 않는가요?

답변
2019-08-29 10:21:19

안녕하세요 길벗수험서 운영팀입니다.

 

순서도를 C코드로 옮기면서 조금 어려워진 코드라 이해가 어려울 수 있습니다.

([반복  j=l, m, n] 구현하기 위한 가장 간단한 방법을 고민하다가 선택했습니다.)

 

언제나 그렇듯이 디버깅을 하여 각 변수가 갖고 있는 값들의 변화를 살펴보세요.

순서도와 달리 C코드에서 변수 m은 4, 0을 반복하게 됩니다. 

이 때 j != m 조건으로 for문을 수행하게 되면 j는

 

1회 반복(m=4) : 0, 1, 2, 3

2회 반복(m=0) : 4, 3, 2, 1 

...

 

이렇게 반복하게 됩니다. (0~3, 4~1 반복)

m과 같아지는 시점에서는 k++;과 a[i][j]=k;를 수행하지 못하게 되기 때문이죠.

이로인해 증감값을 갖는 n을 더해 5가 아닐 때, 또는 -1이 아닐 때를 기준으로 삼아

0~4, 4~0을 수행하도록 구성한 것입니다.

 

아래 이미지는 회원님의 조건으로 출력한 코드이니 참고하시기 바랍니다.

 

 


 

 

행복한 하루되세요 :)

  • 관리자
    2019-08-29 10:21:19

    안녕하세요 길벗수험서 운영팀입니다.

     

    순서도를 C코드로 옮기면서 조금 어려워진 코드라 이해가 어려울 수 있습니다.

    ([반복  j=l, m, n] 구현하기 위한 가장 간단한 방법을 고민하다가 선택했습니다.)

     

    언제나 그렇듯이 디버깅을 하여 각 변수가 갖고 있는 값들의 변화를 살펴보세요.

    순서도와 달리 C코드에서 변수 m은 4, 0을 반복하게 됩니다. 

    이 때 j != m 조건으로 for문을 수행하게 되면 j는

     

    1회 반복(m=4) : 0, 1, 2, 3

    2회 반복(m=0) : 4, 3, 2, 1 

    ...

     

    이렇게 반복하게 됩니다. (0~3, 4~1 반복)

    m과 같아지는 시점에서는 k++;과 a[i][j]=k;를 수행하지 못하게 되기 때문이죠.

    이로인해 증감값을 갖는 n을 더해 5가 아닐 때, 또는 -1이 아닐 때를 기준으로 삼아

    0~4, 4~0을 수행하도록 구성한 것입니다.

     

    아래 이미지는 회원님의 조건으로 출력한 코드이니 참고하시기 바랍니다.

     

     


     

     

    행복한 하루되세요 :)

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