【问题标题】:How to check the amount of rows and columns in a 2D array for a loop checking if the size is appropriate如何检查二维数组中的行数和列数以循环检查大小是否合适
【发布时间】:2020-09-25 18:31:14
【问题描述】:

目前我正在处理一个适用于 2D 数组的作业。对于作业的某个部分,我必须创建一个构造函数来执行此处详述的各种任务:

(1) 完成Matrix类的第二个构造函数“Matrix(int r, int c, double v[][])” 创建具有“r”行和“c”列的矩阵,并分配第三个元素 参数“v[]”,它是一个双二维数组。你需要做一些检查以确保 输入二维数组的行和列的值应与或 大于前两个输入参数的值。如果输入二维数组包含 比所需的指定“r”行和“c”列更多的数字。你可以简单地 忽略那些额外的数字。 (提示:要检查数组的大小,请使用“长度”数据 数组对象的成员)

我目前的代码如下:

Matrix(int r, int c, double v[][]) {
            //Implementation here...
            rows = r;
            cols = c;
          
            
    }

我已经在考虑应该添加values=v;,然后使用.length 以某种方式检查数组。这是我坚持的一部分,因为我不确定如何分别检查 2D 数组的两个维度。当我得到这部分时,我打算简单地编写一个 if 语句,首先检查 r 是否小于或等于数组的第一个长度值,然后检查 c 是否小于或等于数组的第二个长度大批。任何帮助填写空白或检查我所拥有的内容将不胜感激。

【问题讨论】:

    标签: java arrays matrix


    【解决方案1】:

    假设所有列的长度相同,您可以使用:

    int rows = v.length;
    int cols = v[0].length;
    

    然后您可以检查r & c 是否分别等于或大于rows & cols

    【讨论】:

    • 好像是这样,感谢帮助。
    【解决方案2】:

    问题的解决方案已经给出,这就是它在幕后的工作方式。

    二维数组实际上是一个指针数组,其中每个指针都可以引用一个一维数组。那些一维数组是二维数组的行 例如: int A[][] = new int[3][4]

    因此,当您编写 A.length 时,它会为您提供行的长度。当你专门写A[0].length 时,它说给我A[0] 位置上的数组长度。 这是数组的列。

    【讨论】:

    • 很棒的插图,喜欢那些数据可视化工具!一个关键点是,您可以使用遵循 (x, y) 语法的标准笛卡尔坐标以与人们期望相反的顺序访问值。对于数组,我们首先访问行(y 坐标),然后访问列(x 坐标),所以values[row][column]
    猜你喜欢
    • 1970-01-01
    • 2020-06-20
    • 2019-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    相关资源
    最近更新 更多