2447번 - 별 찍기 - 10
아무리 돌려봐도 다 잘 나오는데 왜 틀렸다고 하는지 전혀 감이 오지 않습니다..
if(grid[i][j]=='*') printf("%c", grid[i][j]); else printf(" ");
이렇게 고쳐보세요
그렇게 하니 맞네요... 똑같은것같은데 왜 원래코드는 안되는걸까요
배열의 텅빈 부분은 null이고 출력을 해야하는것은 ' '(공백)입니다 그러므로 Null은 아스키코드가 0이고 공백은 아스키코드가 32이므로 채점기에서는 Null과 ' '(공백)은 다르게 인식합니다.
첨에 초기화도 공백인 0이 아니라 ' '로 해주고 중간에 코드에도 가운데부분은 ' '로 해주었는데... 공백 사용한적 없는데 어디가 공백이 되는건가요?
char grid[2188][2188] = { ' ' };
는 전체를 ' '로 초기화하는 것이 아니고, grid[0][0]만 ' '로 초기화하고 나머지는 0 (널 문자)로 초기화하는 것입니다.
그리고 ' '가 공백이고 0은 공백이 아니라 널 문자이고, 공백을 출력해야 하는데 널 문자를 출력했기 때문에 틀린 것입니다.
댓글을 작성하려면 로그인해야 합니다.
vegatrash 5년 전
아무리 돌려봐도 다 잘 나오는데 왜 틀렸다고 하는지 전혀 감이 오지 않습니다..