所以我有一個給定大小的二維int數組。我想爲這個數組中的某個地方賦值1。我正在使用另一個數組的輸出值。像這樣:二維int數組打印值的行而不是一個
public void printQueens(){
int k = queens[0];
board[1][queens[0]] = 1;
System.out.print(queens[1]);}
k值是在那裏,以確保它是一個整數值。女王的數組是給定大小的一維整數數組。例如。 {6,7,2,4}
queens = new int[NUM_QUEEN];
它是在一個bactracking方法創建:
public void backtrack(int row){
for(int i = 0; i<BOARD_SIZE; i++){
if(canPlace(row,i)){
queens[row] = i;
if(row == NUM_QUEEN-1){
printQueens();
}
else{
backtrack(row+1);
}
}
}
}
我期待的輸出是在第一行和王后[0]列中的一個(在這種情況下,7)。輸出是那些本第1行中的一行:
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
如果我把說,7中,而不是王后[0]輸出是正確的:
0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
所以我的問題是爲什麼這發生?如果常規顯式整數有效,爲什麼隱式整數不是?
'board [1] [k] = 1;'不可能更新整行。請發佈[mcve]。 – shmosel
不太確定,我怎麼能確認。也許截圖? – conk
不,請不要。只需包含重現問題所需的最低代碼即可。有關更多信息,請參閱上面的鏈接。 – shmosel