tkdgnsdl06   4년 전

질문에 있는 테스트 케이스 다 넣어서 VS에서는 잘 돌아가는데 왜 틀렸다고 할까요?

tkdgnsdl06   4년 전

엔터만 입력했을때 0

'       '  ->  0

'   aa  aa ' -> 2

' a a   a  a ' -> 4

다 제대로 나옵니다.

djm03178   4년 전

a[엔터]

1000001이 출력되는데요.

tkdgnsdl06   4년 전

저는 잘나오는데,,,캡처.PNG

djm03178   4년 전

어떻게 그렇게 나올 수 있는지 잘 모르겠네요. 일단 스샷은 https://doyak.s-ul.eu/bpZV7HB9 에 드리고요.

arr이 전역으로 선언됐으니 arr의 모든 원소의 초기 값은 0일 거고요.

a만 입력으로 들어왔다면 arr[0] == 'a'이고, 나머지는 전부 0으로 남아있겠죠. (널 문자도 0이므로)

arr[0]이 널이 아니므로 else에 들어가고,

arr[1]이 널이면서 arr[1 - 1]이 공백이 아니기 때문에 count가 증가할 거고요,

arr[2]가 널이면서 arr[2 - 1]도 공백이 아닌 널 문자기 때문에 또 count가 증가할 거고요,

arr[3]도 널이면서 arr[3 - 1]도 널 문자니까 또 count가 증가하고,

이렇게 arr의 끝까지 갈 때까지 루프가 안 끝나는 게 맞다고 보여지는데, 어떻게 그쪽에서는 1이 출력될 수 있는지가 저는 사실 이해가 잘 안 가네요.

djm03178   4년 전

덧붙여서, else if 에서 else를 빼고 그냥 if로만 쓰면 맞게 나올 것 같습니다.

tkdgnsdl06   4년 전

a[엔터]일때 1이 출력되면 안되는게 맞네요.

그런데 VS디버깅해보면 이상하게 count가 증가를 안합니다.

이건 뭐 VS문제니깐 따로 찾아봐야 겠습니다.

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