c언어는 잘 모르지만
입력버퍼 문제같습니다. 입력버퍼에 엔터(\n)까지 포함되서 넘어가네요.
근데 이걸 해결하면 알고리즘이 정상적으로 작동안하네요.
아마 예제 잘나오신것은 엔터까지 넘어가서 while 문으로 우연히 진입하여 잘나온것처럼 보인것 같습니다.
그리고 while문 빠져나가는 조건이 없네요.
testcase가 0 입력됐을때 문장입력을 받으면 안됩니다.
9093번 - 단어 뒤집기
c언어는 잘 모르지만
입력버퍼 문제같습니다. 입력버퍼에 엔터(\n)까지 포함되서 넘어가네요.
근데 이걸 해결하면 알고리즘이 정상적으로 작동안하네요.
아마 예제 잘나오신것은 엔터까지 넘어가서 while 문으로 우연히 진입하여 잘나온것처럼 보인것 같습니다.
그리고 while문 빠져나가는 조건이 없네요.
testcase가 0 입력됐을때 문장입력을 받으면 안됩니다.
위 코드에서 0 입력해보세요. 바로 함수를 종료해야하지만 여전히 프로그램 실행중입니다.
엔터가 입력버퍼에 남아있어서 발생하는 현상입니다.
위 제기하신 문제는 버퍼를 초기화하는 방법이 있습니다. 제가 c언어를 예전에 배워서 가물가물한데 여러가지 방법이 있습니다.
getchar()를 한번더 적어서 버퍼 초기화 한는 방법도 있구요.
맞은분들 보니까 getchar를 한번 더 사용해서 문제를 해결했군요
댓글을 작성하려면 로그인해야 합니다.
hj_d 7년 전
소스가 아래와 같은데요, 그냥 char 로 입력 받아서 파싱 한다음 출력 하였는데,
예제는 잘 나오고 틀린거는 없어 보이는데 어떤 문제가 있을까요? 궁금 합니다.
물론 제가 틀려서 그렇긴 하겠지만... 알려주세요