bon0303   2년 전

출력은 예시와 똑같이 나오는데, 결과가 틀렸다고 나오네요.

혹시 놓친부분이 있는지 궁금합니다.

dbshin59   2년 전

예제 틀립니다.

예제 답)

10

9

7

55

30

질문자님 답)

10
9
7
56
30

힌트를 드리자면, 오타가 있습니다.

bon0303   2년 전

왜 56이 나올까요..

제가 출력했을때는 55가 제대로 나오는것같습니다. 동일한 코드로요

preview

dbshin59   2년 전

우선 이런 문제가 생기는 원인을 알려드리겠습니다.

이유는 26번 줄에 있는데, 문자열의 끝을 나타내는 문자가 '/0' 이 아닌 '\0' 이기 때문에 일어나는 문제입니다.

이로 인해, break되지 못하고 무조건 80번을 돌게 되고, 같은 배열에 덮어쓰기한다는 특성 상

원래

OXOXOXOXOXOXOX'\0'

였던 것에

OOOOOOOOOO'\0'

가 들어오면

OOOOOOOOOO'\0'XOX'\0'

이 되는데, 원래

OOOOOOOOOO'\0'(<여기)XOX'\0'

첫 번째 '\0'에서 루프가 멈추었어야 하는 것을 오타로 인해 멈추지 못하니

OOOOOOOOOO'\0'XO(<이거)X'\0'

마지막 O까지 계산에 넣어서 56이 나옵니다.

bon0303   2년 전

아...

널문자가 오타였군요.

친절한 설명 감사합니다.

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