我在看「啞」解決N後問題,我通過一個while循環中的代碼混淆:while循環做了什麼?
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;
}
在INT主()我for循環有8在最內層的循環中,我將板的整個第一行初始化爲1.然後我調用該函數,在調用該函數後,我將整個第一行重置爲零。如果你們需要它,我可以顯示int main。
對於由外循環for''控制的每一列'c','while'遍歷數組''b''的第r列看一行,其中'b [r] [c]'是不是1.如果列的每一行都有1,它將訪問內存越界。還有什麼可說的?這是騎士之旅還是八皇后問題,還是跳棋? – 2013-02-13 01:17:14
找到誰命名這些變量併爲我打耳光,努力。 – Aesthete 2013-02-13 01:20:54
八皇后。因此,由於程序已經將整個第一行初始化爲1,因此我們從最右邊開始,這個while循環基本上從b [0] [7]跳到b [1] [7]。 – Chase 2013-02-13 01:21:08