Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的方阵与次对角_Java - Fatal编程技术网

java中的方阵与次对角

java中的方阵与次对角,java,Java,我的任务是: 给定一个平方矩阵m[3x3],创建一个java代码来计算其次对角线的值。见下面的例子 给定矩阵m[3x3]的示例如下所示: (0,0) (0,1) (0,2) | 10   12  11 (1,0) (1,1) (1,2) | 9   8   31 (2,0) (2,1) (2,2) | 2   16  24 Secondary Diagonal (generic m[3x3]) = m[0,2] + m[1,1] + m[2,0] Secondary Di

我的任务是:

给定一个平方矩阵m[3x3],创建一个java代码来计算其次对角线的值。见下面的例子

给定矩阵m[3x3]的示例如下所示:

(0,0) (0,1) (0,2)   |   10   12  11
(1,0) (1,1) (1,2)   |   9   8   31
(2,0) (2,1) (2,2)   |   2   16  24
Secondary Diagonal (generic m[3x3]) = m[0,2] + m[1,1] + m[2,0]
Secondary Diagonal (as in the example above) = 11 + 8 + 2 = 21
注1:java代码必须是通用的,以计算任何平方矩阵[2x2]、[3x3]、[4x4]等的次对角线(在代码中使用常量设置矩阵的numberOfRows和numberOfColumns的值)

注2:矩阵m可能是硬编码的(无需用户交互)

注3:如果numberOfRows和numberOfColumns不同,您的程序必须显示以下消息:“这不是一个方阵。”

到目前为止,我已经:

public class matrix {

public static void main(String[] args) {
    int [] [] matrix = {
            { 10, 12, 11},
            {9, 8, 31},
            {2, 16, 24}
    };
    int secondaryDiagonal = 0;
    int size = matrix.length -1;
    for (int i = 0; i < matrix.length; i++) {
        secondaryDiagonal += matrix[i][size-i];
    }
    System.out.println("Secondary diagonal is " + secondaryDiagonal);


    }
}
公共类矩阵{
公共静态void main(字符串[]args){
int[][]矩阵={
{ 10, 12, 11},
{9, 8, 31},
{2, 16, 24}
};
int二次对角=0;
int size=matrix.length-1;
对于(int i=0;i

它可以工作,但我无法找到一种方法来实现最后的所有注释……请帮助?

您已经达到了要求1和2

对于3,找到行数和列数并显示消息,而不执行任何操作

int numberOfRows = matrix.length;
int numberOfColumns = matrix[0].length; //Note must have atleast one row

if (numberOfRows != numberOfColumns) {
    System.out.println("This is not a square matrix");
} else {
  //proceed to find secondaryDiagonal
}
如果传递了一个空矩阵(如
int[][]matrix={};
),则需要决定执行什么操作。在这种情况下,
numberOfRows
将为0。因此,需要增强第二个条件来处理此问题

numberOfColumns = numberOfRows > 0 ? matrix[0].length : 0
上面的内容不会报告任何消息,而是会落到else块,并导致
次对角线为0


它还假设所有行都有相同数量的列,我想这对您来说可能没问题,并且不需要(从您的注释中)进行如此广泛的测试。

您已经达到了要求1和2

对于3,找到行数和列数并显示消息,而不执行任何操作

int numberOfRows = matrix.length;
int numberOfColumns = matrix[0].length; //Note must have atleast one row

if (numberOfRows != numberOfColumns) {
    System.out.println("This is not a square matrix");
} else {
  //proceed to find secondaryDiagonal
}
如果传递了一个空矩阵(如
int[][]matrix={};
),则需要决定执行什么操作。在这种情况下,
numberOfRows
将为0。因此,需要增强第二个条件来处理此问题

numberOfColumns = numberOfRows > 0 ? matrix[0].length : 0
上面的内容不会报告任何消息,而是会落到else块,并导致
次对角线为0

它还假设所有行都有相同数量的列,我想这对您来说可能没问题,并且不需要(根据您的笔记)进行如此广泛的测试