koom6   4년 전

안녕하세요. 오늘만 두 번째 질문이라 죄송하네요 ㅠㅠ

다름이 아니라 제가 단어를 뒤집는 함수를 만드는 것은 성공하였는데,

제일 기본적인 첫 부분에서 문제가 발생하였습니다.

개수 t를 scanf를 통하여 입력 받으면, 공백이 생기면서 아래의 while문이 한번 실행되어버리는 것 같습니다.

즉, 아래 코드를 실행시킬 때 3을 넣으면 공백이 한 줄 생기며, 두 문장만 프린트합니다.

혼자 고치려고 노력했는데 너무 기본적인 문제도 프린이에게는 어렵네요. TT

혹시 어떻게 고치면 되는지, 무엇이 문제인지 아시는 분 계신지요...

읽어주셔서 감사합니다.

bupjae   4년 전

scanf %d 는 숫자가 아닌 글자가 나올 때 까지 읽은 뒤 정수로 변환하에 저장합니다.

숫자가 아닌 글자를 만났으면 그 글자를 버퍼에 남겨둡니다.

따라서 테스트 케이스의 개수 t 를 읽은 직후, 버퍼에 남아 있는 첫 번째 글자는 줄바꿈 글자 \n 입니다.

   

   

bupjae   4년 전

여러가지 해결책이 있을 수 있지만, 그 중 한 가지 방법으로 scanf에게 "공백글자가 아닌 글자를 만날때 까지 글자를 읽고, 읽은 글자는 버려라" 라고 명령할 수 있습니다.

4번째 줄의 "%d" 를 "%d " 로, 뒤에 space 하나를 추가하면 됩니다.

koom6   4년 전

정말 감사합니다 (__) 드릴 수 있는게 좋아요밖에 없는데 너무 슬프네요.. 내공 다 드리고싶습니다. 감사합니다!!!

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