디버거를 켜면 72번째 줄에서 액세스 위반이 나왔다고 뜹니다. 이때의 nrx와 nbx는 음수라고 하는군요.
13460번 - 구슬 탈출 2
while (1)
{ nrx += dx[i];
nry += dy[i];
if (map[nrx][nry] == '#' || map[nrx][nry] == 'O') break; }
부분을 지우고 다른 조건으로 설정해주니까 해결되었네요!!
그런데 궁금한게 있는데 while문에서 위의 조건과 아래 정답으로 처리된 while문이 무슨차이일까요?? 왜 if (map[nrx][nry] == '#' || map[nrx][nry] == 'O') break;이 조건을 이용하면 프로그램이 실행이 안되는지 궁금합니다..
그리구 visit배열을 2차원 두개로 이용하면 왜 안되는지도 궁금합니다!!
제가 코드를 아래와 같이 짠 이유가 while문으로 무한루프를 돌리고 맵에서 # 이나 O를 만났을 경우 break를 해주려고 한 의도 였거든요..
map[nby][nbx] != '#' && map[nby][nbx] !='O' 이코드를 조건문에 넣는다면 break를 써주는 조건과 맞지않을거같다고 생각해서 아래와 같이 OR로 조건문을 만들었어요!
제가 잘못이해하고있는건가요??ㅠㅠ
```c
while (1) {
nrx += dx[i];
nry += dy[i];
if (map[nrx][nry] == '#' || map[nrx][nry] == 'O') break;
}
```
댓글을 작성하려면 로그인해야 합니다.
wjavm2 4년 전
계속 결과가 뜨지 않습니다..ㅜㅜ
뭐가 문제여서 결과가 뜨지 않는건지답답합니다ㅠㅠ 이틀째풀고잇어여..
로직은이해가는데..ㅠㅠㅠ답답해여