책 내용 질문하기
295쪽 질문입니다
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
295
조회수
105
작성일
2019-05-27
작성자
탈퇴*원
첨부파일

만약 배열 마지막이 1이라면

 

8번에 조건중 마지막에 k가 -1이되어서 11번으로 갔는데

 

k + 1은 0이 되어서 a[0]에 Key가 들어가는건가요?

답변
2019-05-28 10:15:48

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

 

295쪽 C코드에서 배열의 마지막이 1이라는 것은 배열 a가 a[0], a[1] 두 개의 요소로 이루어졌다는 의미가 됩니다.

 

그렇다면 for(k=i-1; k>=0; k--) 를 만났을 때,

for(k=0; k>=0; k--) 가 되어 for문 내의 코드를 1회 수행하게 됩니다.

그럼 if문을 만나 a[0]과 key(a[1])을 비교한 후

 

a[0]>a[1] 보다 크다면 a[1]에 a[0]을 저장하고 for문을 빠져나가(빠져나갈 때 k--를 수행) a[0]=key(기존 a[1])을 저장하며 종료됩니다.

a[1]>a[0] 보다 크다면 break로 for문을 빠져나가(k-- 수행 안함) a[1]=key(a[1]) [의미없음]을 수행하고 종료되죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-05-28 10:15:48

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

     

    295쪽 C코드에서 배열의 마지막이 1이라는 것은 배열 a가 a[0], a[1] 두 개의 요소로 이루어졌다는 의미가 됩니다.

     

    그렇다면 for(k=i-1; k>=0; k--) 를 만났을 때,

    for(k=0; k>=0; k--) 가 되어 for문 내의 코드를 1회 수행하게 됩니다.

    그럼 if문을 만나 a[0]과 key(a[1])을 비교한 후

     

    a[0]>a[1] 보다 크다면 a[1]에 a[0]을 저장하고 for문을 빠져나가(빠져나갈 때 k--를 수행) a[0]=key(기존 a[1])을 저장하며 종료됩니다.

    a[1]>a[0] 보다 크다면 break로 for문을 빠져나가(k-- 수행 안함) a[1]=key(a[1]) [의미없음]을 수행하고 종료되죠.

     

    행복한 하루되세요 :)

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