Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建具有1和0的Java 2D数组?_Java_Arrays - Fatal编程技术网

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

如何创建具有1和0的Java 2D数组?,java,arrays,Java,Arrays,打印的结果应该是这样的(我不知道如何格式化它,但是想象一个9x9 2d数组,其中1创建一个X): 这就是我到目前为止所做的: int [][] myArray = new int[9][1]; for (int row = 0 ; row < 9 ; row++) for (int column = 0 ; column < 1 ; column++) myArray[row][column]= 0; int[]myArray=newint[9

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

这就是我到目前为止所做的:

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

int[]myArray=newint[9][1];
对于(int行=0;行<9;行++)
for(int列=0;列<1;列++)
myArray[行][列]=0;

如何为此创建while循环?

您可以检查列行==0或列+行==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();
    }
    }
}
公共类MyClass{
公共静态void main(字符串参数[]){
int[]myArray=newint[9][9];
对于(int行=0;行<9;行++){
for(int列=0;列<9;列++){
myArray[行][列]=0;
如果(列行==0 | |列+行==8){
myArray[行][列]=1;
}
System.out.print(myArray[行][列]);
}
System.out.println();
}
}
}

请尝试以下代码:

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();
       }
    }

}
公共类主
{
静态整数大小=9;
公共静态void main(字符串[]args){
int[]arr=新的int[SIZE][SIZE];
对于(int i=0;i
我添加了一个打印方法,因此您将看到所需的结果。 关于上述代码的几点:

  • 无需将所有值设置为0。这是默认设置
  • 所以唯一剩下要做的就是把对角线设为1。这可以按照上面的建议在1 for循环中完成。循环中的第一行创建从左上到右下的对角线。第二条线创建另一条对角线
  • 您可以将SIZE变量更改为您想要的任何大小,我将其设置为9,但它可以是任何int

  • int[][]myArray=new int[9][1];
    ”考虑到您显然想要一个9x9数组,您认为这有什么用。
    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();
           }
        }
    
    }