내가 코드에있는 동안 루프에 의해 혼란 스러워요 다음 INT 주에서루프가 수행하는 동안 무엇을합니까?
bool check(int b[8][8])
{
for(int c = 7; c >= 0; c--)
{
int r = 0;
while(b[r][c] != 1) //this is the while loop I was talking about
{
r++;
} //end while loop
for(int i = 1; i <= c; i++)
{
if(b[r][c-i] == 1)
return false;
else if ((r-i)>=0 && b[r-i][c-i] == 1)
return false;
else if ((r+i)<=7 && b[r+i][c-i] == 1)
return false;
}
}
return true;
}
() 나는 루프 (8)이 있고 가장 안쪽 루프에서 보드의 전체 첫 행을 1로 초기화합니다. 그런 다음 함수를 호출하고 함수를 호출 한 후 전체 첫 행을 다시 0으로 재설정합니다. 필요한 경우 int main을 표시 할 수 있습니다.
바깥의 for 루프에 의해 제어되는 각 열'c '에 대해'while '은'b [r] [c]'가있는 행을 찾는 배열'b'의'r' 열을 밟습니다. 1. 모든 행의 열에 1이 있으면 범위를 벗어난 메모리에 액세스합니다. 거기에 더 무엇을 말 할까? 이것은 나이트 투어인가, 여왕 여덟 문제인가, 체커 게임인가? –
누가이 변수들의 이름을 찾았는지 찾아 내게 열심히. – Aesthete
여덟 퀸. 프로그램이 이미 첫 줄 전체를 1로 초기화했기 때문에 보드의 맨 오른쪽에서 시작하기 때문에이 while 루프는 기본적으로 b [0] [7]에서 b [1] [7]로 건너 뜁니다. – Chase