안녕하세요 길벗수험서 운영팀입니다.
1. 281p의 C언어 코드 6번에서 i는 data배열의 첨자로 사용된 것이 아닌데 왜 -1부터 시작인가요?
[답변]
먼저 혼동되는 내용으로 학습에 불편을 드려 사과드립니다.
해당 코드에서 변수 i는 말씀하신대로 배열 첨자로 사용된 것이 아닌 회전수를 의미하며, -1로 초기화될 필요없이 0으로 초기화하여 순서도와 동일하게 진행하는 것이 가능합니다.
이를 적용하기 위해서는 아래와 같이 수정되어야 합니다.
6. i=-1; -> i=0;
14. } while(j<8-i); -> } while(j<9-i);
15. } while(i<8);-> } while(i<9);
해당 내용은 즉시 정오표로 등록될 것입니다.
(배열의 첨자로 사용된다는것이 정확히 어떤걸 의미하나요)
[답변]
각 배열의 주소값을 표현하는 인수로 사용되는 것을 의미합니다.
i가 배열의 첨자로 사용된다면, a[i], b[i] *(a+i), a[i+1] 와 같이 다양한 활용이 있을 수 있죠.
2. 14번줄에서 j<9-i 가 아니라 j < 8-1인 이유는 뭔가요?
[답변]
14번줄은 j<8-i 입니다. 변수 i가 순서도보다 1 감소되어 시작하였으므로, 마지막까지 회전하려면 9-i에서 1감소한 8-i가 되어야 합니다.
1. 답변에서 수정된 내용입니다.
3. 16번줄에서 변수x 대신 n이나 다른 변수를 써도 되나요?
[답변]
가능합니다.
다만 이미 앞에서 선언된 변수(ex:n)를 사용하시려면 for문에 있는 선언을 위한 자료형 표현(int)을 제거해주셔야 합니다.
for (n=0; n<=9; n++)
이렇게 말이죠.
<290p>
순서도에서 3번을 보면 left는 자료의 왼쪽 첫 번째위치를, right는 오른쪽의 마지막 위치를 나타내는데 왜 순서도 5번에서 left (Left와.Right가 정확히 무엇을 의미하는지 이해가 안돼요ㅠㅢ)
[답변]
음.. 먼저 우측으로 가면서 교환하는 방식과
좌측으로 가면서 교환하는 방식을 순서도에서 확인해보세요.
우측으로 갈 때는
d[i]와 d[i+1]을 교체합니다.
우측으로 가는 첫회전을 보면 i는 1~4까지 [1]-[2], [2]-[3], [3]-[4], [4]-[5] 총 4번을 비교하죠.
이때 시작값 1이 left, 끝값 4가 right-1이 됩니다.
좌측으로 갈 때는
d[i-1]과 d[i]를 교체합니다.
좌측으로 가는 두번째 회전을 보면 i는 4~2까지 [3]-[4], [2]-[3], [1]-[2] 총 3번을 비교하죠.
이때 시작값 4는 right, 끝값 2는 left가 됩니다.
행복한 하루되세요 :)
-
관리자2019-04-04 11:05:37
안녕하세요 길벗수험서 운영팀입니다.
1. 281p의 C언어 코드 6번에서 i는 data배열의 첨자로 사용된 것이 아닌데 왜 -1부터 시작인가요?
[답변]
먼저 혼동되는 내용으로 학습에 불편을 드려 사과드립니다.
해당 코드에서 변수 i는 말씀하신대로 배열 첨자로 사용된 것이 아닌 회전수를 의미하며, -1로 초기화될 필요없이 0으로 초기화하여 순서도와 동일하게 진행하는 것이 가능합니다.
이를 적용하기 위해서는 아래와 같이 수정되어야 합니다.
6. i=-1; -> i=0;
14. } while(j<8-i); -> } while(j<9-i);
15. } while(i<8);-> } while(i<9);
해당 내용은 즉시 정오표로 등록될 것입니다.
(배열의 첨자로 사용된다는것이 정확히 어떤걸 의미하나요)
[답변]
각 배열의 주소값을 표현하는 인수로 사용되는 것을 의미합니다.
i가 배열의 첨자로 사용된다면, a[i], b[i] *(a+i), a[i+1] 와 같이 다양한 활용이 있을 수 있죠.
2. 14번줄에서 j<9-i 가 아니라 j < 8-1인 이유는 뭔가요?
[답변]
14번줄은 j<8-i 입니다. 변수 i가 순서도보다 1 감소되어 시작하였으므로, 마지막까지 회전하려면 9-i에서 1감소한 8-i가 되어야 합니다.
1. 답변에서 수정된 내용입니다.
3. 16번줄에서 변수x 대신 n이나 다른 변수를 써도 되나요?
[답변]
가능합니다.
다만 이미 앞에서 선언된 변수(ex:n)를 사용하시려면 for문에 있는 선언을 위한 자료형 표현(int)을 제거해주셔야 합니다.
for (n=0; n<=9; n++)
이렇게 말이죠.
<290p>
순서도에서 3번을 보면 left는 자료의 왼쪽 첫 번째위치를, right는 오른쪽의 마지막 위치를 나타내는데 왜 순서도 5번에서 left (Left와.Right가 정확히 무엇을 의미하는지 이해가 안돼요ㅠㅢ)
[답변]
음.. 먼저 우측으로 가면서 교환하는 방식과
좌측으로 가면서 교환하는 방식을 순서도에서 확인해보세요.
우측으로 갈 때는
d[i]와 d[i+1]을 교체합니다.
우측으로 가는 첫회전을 보면 i는 1~4까지 [1]-[2], [2]-[3], [3]-[4], [4]-[5] 총 4번을 비교하죠.
이때 시작값 1이 left, 끝값 4가 right-1이 됩니다.
좌측으로 갈 때는
d[i-1]과 d[i]를 교체합니다.
좌측으로 가는 두번째 회전을 보면 i는 4~2까지 [3]-[4], [2]-[3], [1]-[2] 총 3번을 비교하죠.
이때 시작값 4는 right, 끝값 2는 left가 됩니다.
행복한 하루되세요 :)