aby7089   3년 전

N을 받아서 O,X로 이루어진 문자열을 N번 받고 점수를 집계하는 문제입니다.

다음과 같이 코드를 짰는데 결과가 계속 예상한대로 안 나오더라구요.

어디가 틀렸는지 구글링 해봤는데 코드가 거의 비슷하고 다만 제가 score=0으로 초기화한걸 1로 초기화 한 정도였습니다. 그리고 제 코드의 16,17줄을 서로 바꾼 정도 이렇게 다릅니다.

그런데 제가 짠 코드처럼 쓰면 둘이 차이가 없지 않나요?

왜 자꾸 틀린 결과값이 나오는지 모르겠습니다. 제 코드에서 어디가 틀렸는지 아시는 분 계시면 알려주세요.

a99azaz   3년 전

출력에서 개행을 하니 맞았습니다를 받았습니다

a99azaz   3년 전

아 그리고 7번째 줄 char 형 배열 맞죠?

aby7089   3년 전

그런데 왜 7번째 줄에서 배열이 char형이 되어야 하나요? int로 쓸 수도 있지 않나요?

a99azaz   3년 전

char와 int의 크기가 다르기 때문입니다.

12번째 줄에서 문제가 발생합니다. 입력으로 'OX' 가 들어오면 s[0] 에 'O'(79), s[1] 에 'X'(88) 이 들어오는게 아닌 s[0]에 22607이 들어옵니다. (gcc 기준)

22607은 이진수로 0101 1000 0100 1111 인데 앞에 8비트는 'X'인 88이고 뒤는 'O'인 79입니다.

s[0] == 'O' 가 거짓이니 점수가 오르지 않아 이상한 결과가 나옵니다.

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