10809번 - 알파벳 찾기
잘못된 곳들을 짚어드립니다.
1. 문자열은 눈에는 안 보여도 항상 끝에 널 문자를 포함하고 있습니다. 따라서, alpa에는 최소 27의 크기가 필요합니다.
2. s는 초기화가 안 되어 있으니, gets(s)을 해도 입력받은 부분 이후의 값은 알 수가 없습니다. 그럼에도 불구하고 13번째 줄에서는 배열 전체에 대해 검사하고 있으니, 중간에 쓰레기값을 유효한 문자로 잘못 인식할 수도 있습니다. char s[101] = {0}; 과 같이 초기화를 해두거나, for (j = 0; s[j] != '\0'; j++) 과 같이 문자열의 끝까지만 검사해야 합니다.
3. 16~20번째 줄은 이상합니다. 연속으로 같은 문자가 있는지를 검사할 이유가 전혀 없습니다. 오히려 15번째 줄 검사에 걸렸을 때 바로 break 해야 합니다.
댓글을 작성하려면 로그인해야 합니다.
jungvely 6년 전
s의 크기르 100으로 하면 런타임에러라고뜨고 101로하면 틀렸다고 합니다
근데 제 비주얼로 돌려봤을땐 문제가 없는데 뭐때문에 틀렸는지 모르겠습니다
그리고 런타임에러는 왜 뜨는건지 주요문제에대해서도 좀 알려주시면 감사하겠습니다