acruxdy   5년 전

9번째 줄에 scanf("%d ",&s[i]);에서 %d바로 뒤에 공간을 두면 실행할 때 정상적으로 실행이 안되던데...왜 그런가요?

djm03178   5년 전

scanf의 서식 문자열에서 공백의 의미는 모든 화이트스페이스 문자 (공백, 개행, 탭 등)들을 읽어서 버리겠다는 뜻입니다. 마지막 수까지 읽은 뒤에 개행 문자를 읽은 뒤에도 scanf는 그 후 화이트스페이스가 아닌 문자가 나타날 때까지 계속 입력 대기 상태에 있게 됩니다. 그래서 그냥은 프로그램이 종료되지 않습니다.

하지만 채점 서버에서는 입력을 파일로 주고, 키보드와 달리 모든 입력이 끝나면 EOF가 나타나 scanf는 읽는 걸 즉시 중단하기 때문에 문제가 없습니다.

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