如何创建带有 1 和 0 的 Java 2D 数组?

时间:2021-01-11 14:47:53

标签: java arrays

打印的结果应该是这样的(我不知道如何格式化,但想象一个 9x9 的二维数组,其中 1 创建一个 X):

1 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 1 0
0 0 1 0 0 0 1 0 0
0 0 0 1 0 1 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 1 0 1 0 0 0
0 0 1 0 0 0 1 0 0
0 1 0 0 0 0 0 1 0
1 0 0 0 0 0 0 0 1

这是我目前所拥有的:

int [][] myArray = new int[9][1]; 
    
for (int row = 0 ; row < 9 ; row++)
    for (int column = 0 ; column < 1 ; column++)
        myArray[row][column]= 0; 

我将如何为此创建一个 while 循环?

2 个答案:

答案 0 :(得分:1)

试试下面的代码:

public class Main
{
static int SIZE = 9;

 public static void main(String []args){
    int[][] arr = new int[SIZE][SIZE];
    for(int i = 0; i < SIZE; i++){
        arr[i][i] = 1;
        arr[i][SIZE-1-i] = 1;
    }
    printArr(arr);
 }
 
 public static void printArr(int[][] arr){
     for(int i = 0; i < SIZE; i++)
       {
          for(int j = 0; j < SIZE; j++)
          {
             System.out.print(arr[i][j] + " ");
          }
          System.out.println();
       }
    }

}

我添加了一个打印方法,所以你会看到想要的结果。 关于上述代码的几点:

  1. 无需将所有值都设置为 0。这是默认设置。
  2. 所以唯一要做的就是将对角线设置为 1。如上所述,这可以在 1 for 循环中完成。循环中的第一行创建从左上角到右下角的对角线。第二行创建另一个对角线
  3. 您可以将 SIZE 变量更改为您想要的任何大小,我将其设置为 9,但它可以是任何整数。

答案 1 :(得分:0)

您可以检查是否 column-row==0 或 column+row==8。第一次检查您会得到从左上角到右下角的十字架,第二次检查从右上角到左下角的十字架。

如评论中所述,您还需要使用 [9][9] 初始化数组,并将第二个数组中的上限检查也更改为 9。

public class MyClass {
    public static void main(String args[]) {
      int [][] myArray = new int[9][9]; 
    
    for (int row = 0 ; row < 9 ; row++) {
        for (int column = 0 ; column < 9 ; column++){
            myArray[row][column]= 0; 
            if (column-row==0 || column+row==8){
                myArray[row][column]= 1; 
            }
            System.out.print(myArray[row][column]);
        }
      System.out.println();
    }
    }
}
相关问题