sks020k   1년 전

코드 가독성이 떨어지는 점 죄송합니다.

N을 입력받고 char a[80]에 처음 O또는X 문자열을 넣을 때는 결과 값이 잘 나옵니다. 하지만 두 번째 경우부터 문자열을 넣을때는 무조건 1이라는 값이 출력됩니다. 이유가 무엇인지 알고 싶습니다. 분명 초기화하는 것에 문제가 없다고 생각했습니다. 제 생각엔 char a[80]배열에 다시 입력받으면서 무언가 잘못된 것 같은데 무엇인지 모르겠어서 질문드리고 싶습니다. 감사합니다.

rokso22   1년 전

char배열의 초기화가 테스트케이스마다 진행되지 않는 것 같습니다 scanf로 a를 받는 코드 바로 윗줄로 char a[80]; 이 선언코드를 옮겨보세요

sks020k   1년 전

rokso22 선생님 그렇게 바꿔봐도 1이 출력됩니다 ㅠㅠ

rokso22   1년 전

일단 1만 계속 출력 되는 현상은 while문 끝나는 부분에 i도 0으로 초기화 해주시면 해결되고

혹시 문제를 잘못 이해하셨을 수도 있는데 연속된 O의 개수로 된다는 것의 의미는

OOXXOO 일 때 O가 4개 붙어있으니 1+2+3+4가 아니라 (1+2)+(1+2) 이런식으로 계산한다는 의미입니다

위의 코드는 그냥 O의 개수를 세고 있는 것 같네요

while문에서 O가 나올때 마다 바로바로 sum에 지금까지의 O의 개수를 더해주고 x가 나오면 개수를 초기화 하는 식으로 코드를 고쳐보세요

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