8958번 - OX퀴즈
코드 가독성이 떨어지는 점 죄송합니다.
N을 입력받고 char a[80]에 처음 O또는X 문자열을 넣을 때는 결과 값이 잘 나옵니다. 하지만 두 번째 경우부터 문자열을 넣을때는 무조건 1이라는 값이 출력됩니다. 이유가 무엇인지 알고 싶습니다. 분명 초기화하는 것에 문제가 없다고 생각했습니다. 제 생각엔 char a[80]배열에 다시 입력받으면서 무언가 잘못된 것 같은데 무엇인지 모르겠어서 질문드리고 싶습니다. 감사합니다.
char배열의 초기화가 테스트케이스마다 진행되지 않는 것 같습니다 scanf로 a를 받는 코드 바로 윗줄로 char a[80]; 이 선언코드를 옮겨보세요
rokso22 선생님 그렇게 바꿔봐도 1이 출력됩니다 ㅠㅠ
일단 1만 계속 출력 되는 현상은 while문 끝나는 부분에 i도 0으로 초기화 해주시면 해결되고
혹시 문제를 잘못 이해하셨을 수도 있는데 연속된 O의 개수로 된다는 것의 의미는
OOXXOO 일 때 O가 4개 붙어있으니 1+2+3+4가 아니라 (1+2)+(1+2) 이런식으로 계산한다는 의미입니다
위의 코드는 그냥 O의 개수를 세고 있는 것 같네요
while문에서 O가 나올때 마다 바로바로 sum에 지금까지의 O의 개수를 더해주고 x가 나오면 개수를 초기화 하는 식으로 코드를 고쳐보세요
댓글을 작성하려면 로그인해야 합니다.
sks020k 1년 전
코드 가독성이 떨어지는 점 죄송합니다.
N을 입력받고 char a[80]에 처음 O또는X 문자열을 넣을 때는 결과 값이 잘 나옵니다. 하지만 두 번째 경우부터 문자열을 넣을때는 무조건 1이라는 값이 출력됩니다. 이유가 무엇인지 알고 싶습니다. 분명 초기화하는 것에 문제가 없다고 생각했습니다. 제 생각엔 char a[80]배열에 다시 입력받으면서 무언가 잘못된 것 같은데 무엇인지 모르겠어서 질문드리고 싶습니다. 감사합니다.