maeng22   7년 전

self_number가 아닌 수 번째 배열값을 바꿔서 안바뀐 배열값이 안 바뀐 수들만 그 번째 값을 출력하는 방식으로 했는데요.

배열은 0부터 시작이고, 수는 1~10000까지니까 16째줄에 (i+1)을 해줘야 한다고 생각했는데, 그럼 한칸씩 밀리더라구요.
왜 그런걸까요?

ybs1164   7년 전

님 말도 어찌보면 맞는 말입니다.

그런데 그 말대로 하면

if (arr[i] == 0)

이거를

if (arr[i+1] == 0)

이렇게 바꿔줘야 되겠죠.


한칸씩 밀리는 이유는

0  1  2  3  4  5  6  7  8  9  10

1  0  1  0  1  0  1  0  1  0   1

배열에는 이렇게 저장되어 있을겁니다.

그럼 i 는 0부터 출발하겠죠.

그럼 arr[i] 가 0인지 확인할겁니다. 아니죠.

그리고 i 가 1이 되었습니다.

arr[i] 가 0이군요. 그럼 i+1 을 출력해야겠죠?

그럼 2가 출력이 됩니다.

...이게 계속되서 그런겁니다.

댓글을 작성하려면 로그인해야 합니다.