1. 기출문제집 115p에서 2번에 왜 8-i가 들어가는지 잘모르겠어요 ㅠㅠ
2. 129p에 문제3번에 2번이 왜 c=f인지 잘모르겠어요
3. 1%2를 하면 나머지가 1이 되는건가요??
저는 0이라고 생각했거든요ㅠㅠ
4.51p에 4번에 0이아니고 1이 들어가는 이유를 알려주세요
안녕하세요.
1)
C언어는 배열의 위치가 0부터 시작합니다.
i가 0일 때, 즉 1회전에서는
j는 0부터 8-i, 즉 8까지 비교합니다.
다시말해
j가 0일 때는
data[0]일 때 data[1]과
j가 1일 때는
data[1]일 때 data[2]와
.
.
j가 7일 때는
data[7]일 때 data[8]과
j가 8일 때는
data[8]일 때 data[9]와 비교합니다.
data 배열은 data[0]부터 data[9]까지 10개이므로 8-i까지 비교하면 각 회전때마다 맞게 비교됩니다.
2)
1권 197쪽에서 학습한 내용입니다. 알고리즘의 이해와 순서도로도 자세히 설명되어 있으니 참고하세요.
3)
자신보다 작은 값을 나눌 때는 나눌 수가 없으므로 몫은 0이되고 나머지는 나누려는 수가 됩니다.
그러므로 1%2는 몫이 0이고 나머지가 1이 됩니다.
4)
N은 입력 받은 값으로 K로 나눠보면서 소인수 여부를 확인합니다.
K는 2부터 시작하므로 N이 1, 즉 N을 K로 나눈 나머지가 1인 경우에는 소인수 분해가 마무리 되게 됩니다.
직접 디버깅을 수행해 보면서 확인해 보세요.
오늘도 즐거운 하루 되세요.
-
*2017-10-10 14:41:49
안녕하세요.
1)
C언어는 배열의 위치가 0부터 시작합니다.
i가 0일 때, 즉 1회전에서는
j는 0부터 8-i, 즉 8까지 비교합니다.
다시말해
j가 0일 때는
data[0]일 때 data[1]과
j가 1일 때는
data[1]일 때 data[2]와
.
.
j가 7일 때는
data[7]일 때 data[8]과
j가 8일 때는
data[8]일 때 data[9]와 비교합니다.
data 배열은 data[0]부터 data[9]까지 10개이므로 8-i까지 비교하면 각 회전때마다 맞게 비교됩니다.2)
1권 197쪽에서 학습한 내용입니다. 알고리즘의 이해와 순서도로도 자세히 설명되어 있으니 참고하세요.
3)
자신보다 작은 값을 나눌 때는 나눌 수가 없으므로 몫은 0이되고 나머지는 나누려는 수가 됩니다.
그러므로 1%2는 몫이 0이고 나머지가 1이 됩니다.
4)
N은 입력 받은 값으로 K로 나눠보면서 소인수 여부를 확인합니다.
K는 2부터 시작하므로 N이 1, 즉 N을 K로 나눈 나머지가 1인 경우에는 소인수 분해가 마무리 되게 됩니다.
직접 디버깅을 수행해 보면서 확인해 보세요.
오늘도 즐거운 하루 되세요.