【问题标题】:Automatic matrix creator on JavaJava 上的自动矩阵创建器
【发布时间】:2020-08-25 19:03:53
【问题描述】:

我想在自动化程序(取决于输入)上创建二维矩阵,然后让它们返回以查看结果。

这是我的代码:

public class Two_dimensional_arrays {

    static int[][] array1;

    public static int[][] create_array(int number1, int number2) {
        int k = 1;
        for (int j = 0; j <= number2; j++) {
            for (int i = 0; i <= number1; i++) {

                array[i][j] = k;
                k++;
            }
        }

        return array1;
    }
}

所有这些背后的逻辑是按顺序填充任何矩阵(让我们制作一个 3x3 的矩阵)

1-2-3

4-5-6

7-8-9

所以矩阵会被自动填充(按升序排列),但由于我是编程新手,所以它没有按预期工作。

【问题讨论】:

    标签: java arrays matrix


    【解决方案1】:

    你必须在某处实际分配数组。

     static int[][] array1;
    

    这声明了一个能够保存对数组的引用的变量;它不是数组。数组由'new'分配:

     static int[][] array1 = new int[3][3];
    

    其他几点:

    1. 循环中的“array”应该是“array1”。

    2. 由于 'array1' 是一个成员变量,因此也可能没有必要返回它。你可以选择任何一种方式:有一个数组,就像目前一样,你的 create_array 方法每次都会覆盖它;或者让 create_array 分配一个预期大小的数组 (new int[number1][number2]) 并返回它。我会选择后者。

    3. 参数可以更好地命名:“row_count”而不是“number1”,“column_count”而不是“number2”——或任何类似的表达预期含义的东西。 (通常 Java 程序员使用驼峰式命名,比如 rowCount,而不是下划线,但这不是一个特别有趣的讨论,也不是我的意思)。

    【讨论】:

      【解决方案2】:
      public class Two_dimensional_arrays {
          
          public static int[][] create_array(int number1, int number2){
              int[][] matrix = new int[number1][number2];
              
              int k = 1;
              
              for(int i = 0; i<number1; i++){
                  for(int j = 0; j<number2; j++){
                      matrix[i][j] = k;
                      k++;
                  }
              }
              
              return matrix;
          }
          
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        • 2018-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多