Java 二维整数数组打印的是一行值,而不是一行值

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]; 它是在以下跟

所以我有一个给定大小的二维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 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