矩阵填充块

时间:2015-10-18 00:54:44

标签: java matrix

在我的课堂上,我们必须制作一个矩阵填充程序,但是我对如何使用用户输入非常困惑,我根本不知道如何操作。我试图开始编码,但无法通过第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的数字? / p>

1 个答案:

答案 0 :(得分:1)

通过您的示例代码,您似乎缺少的是基本的语法知识。让我用简单的语言在最基本的层面上刷新数组内存。

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

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

以下是一些代码:

int[] myArray;

这里我声明一个包含int s的1维数组。

myArray = new int[6];

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

int[] myArray2 = new int[7];

我也可以在同一条线上进行。

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

这里我宣布了一个包含long s的二维数组。尺寸的长度为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;
    }
}

不确定您是否需要此功能,但我会提及一些其他说明:

  • 您可以直接使用值初始化数组,然后您不需要指定维度&#39;长度:

    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++) {
       // ...
    }