基质填充块[英] Matrix Filler Block

问题描述

在我的课堂上,我们必须制作一个矩阵填充程序,但我对如何通过使用用户输入来做到这一点感到非常困惑,而且我根本不知道该怎么做.我尝试开始编码,但无法通过第 1 步.

package question4;

import java.util.Random;
import java.util.Scanner;
import java.util.Arrays;

public class MatrixFiller {

public static void main(String[] args) {
    Scanner input=new Scanner(System.in);
    System.out.print("Size of Matrix: ");
    Random ranGen= new Random();
    int matrixSize=input.nextInt();
    int a = matrixSize*matrixSize;
    input.close();
    int[][] myMatrix = new int[matrixSize][matrixSize];
    for 
    ( int x = 0; x < matrixSize ; x ++ )
    {
        for ( int y = 0; y < matrixSize ; y ++ )
        {
            myMatrix [x][y]= ranGen.nextInt(a);
            System.out.print(Integer.toString(myMatrix [x][y])+ " ");
        }
                System.out.print("\n");
    }
}

}

所以我修复了代码并在徘徊如何添加数字的零地狱,如 1 和 2,所以它出现 01 和 02,我是否需要一个 if 循环,以便它只检查小于 10 的数字?

推荐答案

通过您的示例代码,您似乎缺少基本的语法知识.让我用简单的语言在最基本的层面上刷新你对数组的记忆.

数组就像某种类型的变量的多维列表.

  • 您在声明数组时选择变量的类型.
  • 数组可以容纳的变量数量是一个常数(数组的length),它是在初始化时定义的.
  • 数组也可以有多个维度.您在声明数组时设置维数.将一维数组视为列表,二维会将列表转换为矩阵.在这种情况下,您需要设置每个维度的长度(在初始化时).因此,如果两个维度的长度相同,您将得到一个正方形,否则您将得到一个矩形.

下面是一些代码:

int[] myArray;

这里我声明了一个包含 ints 的一维数组.

myArray = new int[6];

这里我初始化我的数组并将维度的长度设置为6.

int[] myArray2 = new int[7];

我也可以在同一行做.

long[][] myMatrix = new long[3][2];

在这里,我声明了一个包含 long 的二维数组.维度的长度是3和2,所以想象一下是这样的:

_ _
_ _
_ _

现在我们要在某个位置访问数组.这是通过指定要访问的每个维度中的数组名称和位置来完成的,如下所示:

myMatrix[0][1] = 63;

记住!位置从 0 开始计数,因此 2 x 3 数组的第一个维度值是 0 和 1;以及第二维值 0、1 和 2.

现在让我们迭代一个数组并将数字 6 放入它的所有槽中:

int[][] exmaple = new int[3][3]; // 2 dim. array of ints with size 3 by 3.
for (int x = 0; x < 3; x++) {
    for (int y = 0; y < 3; y++) {
         example[x][y] = 6;
    }
}

不确定你是否需要这个,但我会提到一些额外的注意事项:

  • 你可以直接用值初始化一个数组,然后你不需要指定维度的长度:

    int[][] array = new int[][] {{1 ,2}, {5, 65}}; // 2 by 2
    
  • 可以通过语法获取数组的维度长度

    array.length;    
    array[0].length;
    array[1].length;
    // etc.
    

    这些返回一个 int ,您可以在循环时将其用作边界:

    for (int i = 0; i < array.length; i++) {
       // ...
    }
    

本文地址:https://www.itbaoku.cn/post/978353.html