yunsuk0616   3년 전

char 형 배열로 문자열 사용 배우기 전이라 getchar 로만 풀어보려했는데 끝까지 런타임 에러가 나네요...

이 코드에서 더 빠르게 할 수 있는 여지가 있을까요?

조언 부탁드리겠습니다

harinboy   3년 전

런타임에러는 실행시간과는 전혀 관련이 없습니다.

실행 중 어떤 이유에서든 더 이상 진행할 수 없게 되었을 때 일어나는 에러입니다.

이번 경우는 입력 데이터의 마지막에 '\n'이 반드시 있으리라는 보장이 없어서 생긴 에러인 것 같습니다.

일반적으로 입력 파일의 끝은 EOF(End Of File)로 끝나게 됩니다. 

'\n'이 없다면 getchar()는  마지막에 EOF를 입력받고, 13번줄에서  arr[ch-'A']가 유효한 배열 범위가 아니라 런타임 에러가 나게 됩니다.

while문 조건에 && ch!=EOF를 추가해서 제출하면 맞았습니다!!를 받을 수 있네요,

추가로, 직접 콘솔을 띄워 실행 결과를 확인하시는 것이라면, EOF는 Ctrl+'Z'를 몇 번 누르면 입력되는 걸로 기억합니다.

yunsuk0616   3년 전

답변감사합니다ㅠㅠ

EOF를 간과했었네요 :)

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