Java 二维整数数组打印的是一行值,而不是一行值
所以我有一个给定大小的二维int数组。我想给数组中的某个特定位置赋值1。我正在使用另一个数组的输出值。大概是这样的:Java 二维整数数组打印的是一行值,而不是一行值,java,arrays,command-line,int,backtracking,Java,Arrays,Command Line,Int,Backtracking,所以我有一个给定大小的二维int数组。我想给数组中的某个特定位置赋值1。我正在使用另一个数组的输出值。大概是这样的: 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]; 它是在以下跟
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];
它是在以下跟踪方法中创建的:
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);
}
}
}
}
如果我用7代替queens[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
所以我的问题是为什么会发生这种情况?如果正则显式整数有效,为什么隐式整数无效?那么。。。我试着理解你的问题。这是一个代码的建议,可以实现您想要的功能(如果我理解这个问题的话)
女王的阵型从未被重置。因此,当我使用queen数组时,由于递归,它只是将每个值叠加在一起代码>不可能更新整行。请发一封邮件。不太清楚我还能怎么核实。也许是一个屏幕截图?不,请不要。只包含重现问题所需的最少代码。更多信息请参见上面的链接。我只是编辑了一下,试图进一步解释女王来自哪里。希望这会有所帮助,我知道它看起来很模糊。谢谢你的建议“k值是用来确保它是一个整数值的。”它还能是什么样的值呢?“它”的前因是什么?谢谢你的回答!我已经试过了你的密码,得到了一排密码。很明显我遗漏了什么!我想可能有人知道关于这个特定代码的某个“小故障”。谢谢你!您的环境是什么(OS、IDE、JDK)?
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
public static void main(String[] args) {
int boardSize = 8;
int queens[] = {6, 7, 2, 4};
int board[][] = {{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, 0, 0, 0 , 0, 0, 0, 0},
{0, 0, 0, 0 , 0, 0, 0, 0}};
int k = queens[0];
board[1][k] = 1;
for (int row = 0; row < boardSize; row++) {
for (int col = 0; col < boardSize; col++) {
System.out.print(board[row][col] + " ");
}
System.out.println();
}
}
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