java中的方阵与次对角
我的任务是: 给定一个平方矩阵m[3x3],创建一个java代码来计算其次对角线的值。见下面的例子 给定矩阵m[3x3]的示例如下所示: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
(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
它还假设所有行都有相同数量的列,我想这对您来说可能没问题,并且不需要(根据您的笔记)进行如此广泛的测试