Java 如何用数字自动填充二维阵列

Java 如何用数字自动填充二维阵列,java,arrays,Java,Arrays,嗨,我正在尝试根据用户输入自动填充二维数组。 用户将输入1个数字,该数字将设置2d阵列的大小。然后我想打印出数组的数字。 例如,如果用户输入数字4。2d数组将是4行乘4列,应该包含数字1到16,并按如下方式打印 1-2-3-4 5-6-7-8 9-10-11-12 13-14-15-16 但我正在努力想一个正确的说法来做到这一点。 目前,我的代码只是打印出一个包含*的2d数组 有人知道我怎么打印出数字吗,我真的被卡住了。 我的代码如下: public static void main(Stri

嗨,我正在尝试根据用户输入自动填充二维数组。 用户将输入1个数字,该数字将设置2d阵列的大小。然后我想打印出数组的数字。 例如,如果用户输入数字4。2d数组将是4行乘4列,应该包含数字1到16,并按如下方式打印

1-2-3-4
5-6-7-8
9-10-11-12
13-14-15-16
但我正在努力想一个正确的说法来做到这一点。 目前,我的代码只是打印出一个包含*的2d数组

有人知道我怎么打印出数字吗,我真的被卡住了。 我的代码如下:

public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    System.out.println("Enter room length");

    int num1 = input.nextInt();
    int num2 = num1;
    int length = num1 * num2;
    System.out.println("room "+num1+"x"+num2+"="+length);

    int[][] grid = new int[num1][num2];

    for(int row=0;row<grid.length;row++){   
        for(int col=0;col<grid[row].length;col++){
            System.out.print("*");  
        }
        System.out.println();
    }
}
publicstaticvoidmain(字符串参数[]){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入房间长度”);
int num1=input.nextInt();
int num2=num1;
整数长度=num1*num2;
系统输出打印项次(“房间”+num1+“x”+num2+“=”+长度);
int[][]网格=新的int[num1][num2];

对于(int row=0;row嗯,首先你必须用数字填充数组。你可以使用double for循环和一个在内部for循环的每个循环后递增的计数器变量

int counter = 1;
for(int x = 0; x < num1; x++)
{
    for(int y = 0; y < num2; y++)
    {
        grid[x][y] = counter++;
    }
}
int计数器=1;
对于(int x=0;x

之后,您可以使用双for循环再次输出阵列。

我不确定您是否理解正确。
int counter = 1;
for(int x = 0; x < num1; x++)
{
    for(int y = 0; y < num2; y++)
    {
        grid[x][y] = counter++;
    }
}
您的代码打印有问题*

如果是,那么原因是

System.out.print("*");
应该是

System.out.print(grid[row]);  
读取n值

int[][] arr = new int[n][n];
int inc=1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
arr[i][j]=inc;
inc++;
}
int[]arr=newint[n][n];
int inc=1;
对于(int i=0;i
publicstaticvoidmain(String[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入房间长度”);
int arraySize=input.nextInt();
System.out.println(“长度:”+(arraySize*arraySize));
int[][]数组=新的int[arraySize][arraySize];
整数计数=1;

对于(int i=0;循环中的
if
决策应该使用
arraySize-1
而不是
3
。感谢您的帮助。我尝试过类似的方法。我在for循环中声明了计数器变量。感谢所有人的评论,他们都提供了帮助。我得到了我想要的效果。您想知道如何使用它吗是否更正数组
网格中的数字?