%d는 int 입력을 요구하는데 char형 변수를 넣으면 안 되죠.
scanf("%hhd", &map[i][j])로 쓰셔야 합니다.
14502번 - 연구소
%d는 int 입력을 요구하는데 char형 변수를 넣으면 안 되죠.
scanf("%hhd", &map[i][j])로 쓰셔야 합니다.
메모리 침범의 문제였군요.
64번째나 32번째 input에서 바뀐다면 이해가 갔을텐데
52번째의 input이 0번째를 침범하고 다른 element들은 값 변화가 없다는게
컴퓨터는 참 알다가도 모르겠네요...ㅎㅎ
그리고 hhd는 처음알았는데 덕분에 한 수 배워갑니다.
두 분 답변 정말 감사드립니다!
댓글을 작성하려면 로그인해야 합니다.
crud004 6년 전
8 8
2 0 0 0 0 0 0 2
2 0 0 0 0 0 0 2
2 0 0 0 0 0 0 2
2 0 0 0 0 0 0 2
2 0 0 0 0 0 0 2
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
14502번 문제에서 위의 input을 map이라는 2차원 배열에 저장할때 생기는 문제입니다.
input의 각 element는 0,1,2중 하나의 상태이기 때문에 메모리 절약을 위해 char형으로 선언하였고
상태가 0인 element의 위치를 zero_location에 저장하였습니다.
예제를 테스트하는 과정에서 (0,1)이어야할 첫번째 0의 위치가 (0,0)으로 나타나길래 로그를 찍어봤더니
마지막줄 6번째의 input을 읽을때 뜬금없이 바뀌더군요...
아무리 생각해도 이해가 안가서 질문드립니다.
혹시 아시는분은 답변해주시면 감사하겠습니다.