jungvely   6년 전

s의 크기르 100으로 하면 런타임에러라고뜨고 101로하면 틀렸다고 합니다

근데 제 비주얼로 돌려봤을땐 문제가 없는데 뭐때문에 틀렸는지 모르겠습니다 

그리고 런타임에러는 왜 뜨는건지 주요문제에대해서도 좀 알려주시면 감사하겠습니다 


cheetose   6년 전

W

cheetose   6년 전

그리고 문자열 마지막은 null 들어가야해서 배열 크기 하나 더 줘야돼요

jungvely   6년 전

jh05013 님!! 부가설명을 해주시면 감사하겠습니당 ㅠㅠ 

저사이트에서 baekjoon 을 입력넣었을때 결과값이 저렇기 때문에 제가 틀린건가요??

jh05013   6년 전

네, BOJ의 채점 환경은 비주얼이 아니라 GCC입니다.

djm03178   6년 전

잘못된 곳들을 짚어드립니다.

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년 전

jh05013 님 정보 감사합니다! 구글링으로 GCC를 찾아서 다운로드해보고 설치해보려고 하는데 잘안됩니다 ㅠㅠ 혹시 설명이 잘나와잇는 사이트 알고계신가요??

djm03178 님 매번이렇게 도움주시고 정말 감사합니다 djm03178 님께서 지적해주신대로 고쳐서 개선했습니다 앞으로도 이런부분들을 조심하겠습니다 ㅎㅎ 근데 채점은 틀렸다고 합니다 ㅠㅠ 채점환경이 달라서 다르게 보이는건지 잘모르겠습니다 ㅠㅠ 

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