【问题标题】:how to automatically populate a 2d array with numbers如何用数字自动填充二维数组
【发布时间】:2012-06-29 22:07:35
【问题描述】:

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

1-2-3-4
5-6-7-8
9-10-11-12
13-14-15-16

但我正在努力想出正确的说法来做到这一点。 目前我的代码只是打印出一个包含*的二维数组。

有没有人知道如何打印出这些数字,我真的很困惑。 我的代码如下:

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

【问题讨论】:

  • 您是在问如何将正确的数字放入数组grid

标签: java arrays


【解决方案1】:

读取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++;
}

【讨论】:

  • 感谢大家的cmets,他们都提供了帮助。我让它按我想要的方式工作
【解决方案2】:

嗯,首先你必须用数字填充数组。您可以为此使用双 for 循环和一个计数器变量,您可以在内部 for 循环的每个循环之后递增。

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

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

【讨论】:

  • 感谢您的帮助。我曾尝试过类似的方法,我在 for 循环中声明了计数器变量。
【解决方案3】:

我不确定我是否理解正确。 代码打印有问题*?

如果是,那么原因就是这个

System.out.print("*");

应该是

System.out.print(grid[row]);  

【讨论】:

    【解决方案4】:
    public static void main(String[] args) {
    
        Scanner input = new Scanner(System.in);
        System.out.println("Enter room length");
        int arraySize = input.nextInt();
        System.out.println("Length: " + (arraySize*arraySize));
    
        int[][] array = new int[arraySize][arraySize];
        int count = 1;
    
        for (int i=0;i<arraySize;i++) {
            for (int j=0;j<arraySize;j++) {
                array[i][j] = count;
                if (j != (arraySize-1)) 
                    System.out.print(count + "-");
                else
                    System.out.println(count);
                count++;
            }
        }
    }
    

    这段代码应该按照你想要的方式打印出数字。

    【讨论】:

    • 循环中的if 决策应使用arraySize - 1 而不是3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2016-08-07
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    相关资源
    最近更新 更多