主要对角矩阵JAVA的总和

时间:2017-12-02 23:53:46

标签: java arrays

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

// 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;
}

1 个答案:

答案 0 :(得分:1)

您不需要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];
}