책 내용 질문하기
567 디버깅 관련 문의
도서
2019 시나공 정보처리기사 실기(산업기사포함)
페이지
192
조회수
297
작성일
2019-06-21
작성자
탈퇴*원
첨부파일

배열 A 에서 0으로 치환되는 첨자는

M 변수에 의해 3,5,7, 9, 11........

즉, 배열의 첨자가 2씩 증가 될때마다 0으로 치환 되는게 아닌가요?

 

디번깅에서 보면 배열 A[8]이 왜 0으로 변환 되었는지

설명 부탁드립니다.  

답변
2019-06-24 13:30:04

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

 

교재 191쪽의 2번 설명을 참고하세요.

 

a[2]가 0이 아니므로 소수일 때, m = i를 통해 m은 2가 되고(12번 순서도)

m에 a[i]인 3을 더하면서 m은 5가 됩니다.(13번 순서도)

때문에 a[5]는 0이 되고 (15번 순서도)

돌아가면서 다시 m에 a[i]인 3을 다시 더하면서(13번 순서도)

a[8]에 0을 저장하게 되죠 (15번 순서도)

 

각 소수가 저장된 배열에서 소수값을 더해가며 뒤의 배열에 0을 저장하는 작업을 수행합니다.

소수 2가 저장된 배열 a[1]에서는 2씩 증가하는 배열 첨자 1, 3, 5, 7, 9, 11 을 비우고

소수 3이 저장된 배열 a[2]에서는 3씩 증가하는 배열 첨자 5, 8, 11 을 비우게 되죠.

 

행복한 하루되세요 :)

  • 관리자
    2019-06-24 13:30:04

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

     

    교재 191쪽의 2번 설명을 참고하세요.

     

    a[2]가 0이 아니므로 소수일 때, m = i를 통해 m은 2가 되고(12번 순서도)

    m에 a[i]인 3을 더하면서 m은 5가 됩니다.(13번 순서도)

    때문에 a[5]는 0이 되고 (15번 순서도)

    돌아가면서 다시 m에 a[i]인 3을 다시 더하면서(13번 순서도)

    a[8]에 0을 저장하게 되죠 (15번 순서도)

     

    각 소수가 저장된 배열에서 소수값을 더해가며 뒤의 배열에 0을 저장하는 작업을 수행합니다.

    소수 2가 저장된 배열 a[1]에서는 2씩 증가하는 배열 첨자 1, 3, 5, 7, 9, 11 을 비우고

    소수 3이 저장된 배열 a[2]에서는 3씩 증가하는 배열 첨자 5, 8, 11 을 비우게 되죠.

     

    행복한 하루되세요 :)

  • 관리자
    2019-06-25 11:04:16

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

     

    a[i]의 값은 항상 2가 아닌가요? 

    문제에 따르면 a[2]~a[99]는 2~100의 정수가 저장되어 있습니다.

    2의 배수가 저장되어 있는 a배열의 값을 0으로 저장한 후

    다시 돌아와 7번 과정을 거치면 i는 2, a[i]는 3이 됩니다.

    그럼 이제 3의 배수를 0으로 저장하는 과정을 거치겠죠.

     

     

    m은 5이고 a[i]는 3이 아니라 2 아닌가요?

              그러므로 m은 8이 아니라 7이 되는거 아닌가요/

    어떤 과정을 거쳐 m이 5이고 a[i]가 2인지 전혀 설명되어 있지 않아 넓게 설명드릴 수 밖에 없습니다.

    문제에서 a[99]에 2~100까지 99개의 수가 저장되어 있다고 가정하고 있으므로 a[2]는 3입니다.

    때문에 a[2+3] = 0, a[2+3+3] = 0 과정을 13~15번 순서도에서 수행하는 것이죠.

     

    행복한 하루되세요 :)

  • *
    2019-06-24 21:27:09

     

    질문에 대한 답변을 상세히 읽고 답변 부탁드립니다..

     

    a[i]의 값은 항상 2가 아닌가요?

     

    질문에 대한 해설중에

    갑자기 a[i]의 값이  왜 3이 되었는지 답변 부탁드립니다. 


    빨간 글씨에 답변 부탁드립니다..

     

     

    a[2]가 0이 아니므로 소수일 때,

    m = i를 통해 m은 2가 되고(12번 순서도)

    m에 a[i]인 3을 더하면서 m은 5가 됩니다.(13번 순서도)

    때문에 a[5]는 0이 되고 (15번 순서도)

     

    돌아가면서 다시 m에 a[i]인 3을 다시 더하면서(13번 순서도) a[8]에 0을 저장하게 되죠

     

    =====> m은 5이고 a[i]는 3이 아니라 2 아닌가요?

              그러므로 m은 8이 아니라 7이 되는거 아닌가요/

     

     

     (15번 순서도) 각 소수가 저장된 배열에서 소수값을 더해가며 뒤의 배열에 0을 저장하는 작업을 수행합니다. 소수 2가 저장된 배열 a[1]에서는 2씩 증가하는 배열 첨자 1, 3, 5, 7, 9, 11 을 비우고 소수 3이 저장된 배열 a[2]에서는 3씩 증가하는 배열 첨자 5, 8, 11 을 비우게 되죠. 행복한 하루되세요 :)  

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