scanf 의 동작 방식 때문입니다. 실제 채점 시스템에서는 영향을 주지 않을 겁니다.
scanf 의 format string 에서 공백의 의미는 "다음 글자가 whitespace 가 아니거나 오류가 발생할 때 까지 입력을 읽은 후 버린다" 입니다.
즉, 5개의 정수를 다 입력받은 후에 whitespace가 아닌 글자를 찾을 까지 계속 입력받으려 하기 때문에 마치 6개의 정수를 요구하는 것 처럼 보입니다.
하지만 이 "6번째 정수"는 입력 처리가 되지 않은 채 프로그램이 끝나게 됩니다.
채점 시스템에서는 5번째 정수를 입력받은 뒤 "파일의 끝"에 도달하기 때문에, scanf는 이를 입력 오류로 생각하고 whitespace 찾기를 그만둡니다.
sharpnpen 6년 전
예를 들어, 첫번째 줄에서 5개 수를 입력 받겠다고 한다면,
두번째 줄부터 차례대로 5개의 수를 각각 입력 받아야 되는데,
항상 그거보다 하나 더 많은 수를 입력 받습니다. 즉, 6개의 수를 입력 받는게 골치입니다.
혹시 아시는 분 가르쳐주시면 감사하겠습니다.^^