[급함]c언어를 사용하여 n-queen 찾기에서 무한루프가 도는데 이유를 모르겠습니다

조회수 776회

int is_safe(int i,int j) { int k = 1; int num = i;

i--;

while (i = !0)
{
    if (board[i][j] == 1) return 0;
    i--;
}

i = (num-1);

while (i = !0 && j+k <= size)
{
    if (board[i][j + k] == 1) return 0;
    k++;
    i--;
}

i = (num-1);
k = 1;

while (i = !0 && j-k >0)
{
    if (board[i][j - k] == 1) return 0;
    k++;
    i--;
}

return 1;

}

n-Queen을 찾는 문제 입니다. 제가 만들어 본것인데 빌드는 되는데 디버그가 안되네요ㅜ 프로그램이 계속 도는 것 같습니다ㅜ

  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • while (i = !0)
    
    

    여기서 !0는 1이 됩니다. (!는 NOT 연산자)

    1은 True/False중에 True에 해당하게되고, 이를 i에 대입하게되므로

    무한루프를 도는 구조가 되는겁니다.

    while(i != 0)
    

    으로 수정해보세요~

    != 연산자는 '같지 않다면'을 뜻합니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)