したがって、私は与えられたサイズの2次元int配列を持っています。この配列の特定の場所に1の値を割り当てたいと思います。別の配列の出力値を使用しています。2次元int配列は単なる値ではなく値の行を出力します
public void printQueens(){
int k = queens[0];
board[1][queens[0]] = 1;
System.out.print(queens[1]);}
k値は、整数値であることを確認するための値です。クイーンの配列は、与えられたサイズの1次元整数配列です。例えば。 {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);
}
}
}
}
私は期待していた出力が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