主对角线矩阵的总和JAVA

我需要在Java中找到矩阵中主对角线的总和。我的程序适用于矩阵(如1x2和2x2),但是当行数大于列数时(即3x2),我的代码会抛出一个超出界限的异常。有什么方法可以解决它吗?主对角线矩阵的总和JAVA

// sum of major diagonal in matrix 

public static int majorDiagonal(int[][] array){

int sumMD = 0;

for (int i = 0, j = 0, k = array.length; i < k && j < k; i++, j++) {

sumMD += array[i][j];

}

return sumMD;

}

回答:

你并不需要同时ij,因为他们总是在你的代码相同的值。

因此,您的延续条件i < k && j < k没有太大意义,因为如果i小于k,那么j也会如此。

将for循环的延续条件更改为i < k && i < array[0].length。这将检查i是否小于列数和行数,这是您需要的条件。

for (int i = 0, k = array.length; i < k && i < array[0].length; i++) { 

sumMD += array[i][i];

}

以上是 主对角线矩阵的总和JAVA 的全部内容, 来源链接: utcz.com/qa/258900.html

回到顶部