为什么我没有得到矩阵元素的正确结果?

时间:2014-06-18 18:56:38

标签: java

我想编写只添加对角线元素的代码。

    import java.util.Scanner;

public class SabMat {
  public static void main(String[] args) {

          Scanner input = new Scanner(System.in);
         double [][] matrix = new double [4][4];

      System.out.print("Enter matrix elements by row");
        for (int i=0; i < matrix.length; i++) {
           matrix[i][0] = input.nextDouble();
           matrix[i][1] = input.nextDouble();
           matrix[i][2] = input.nextDouble();
           matrix[i][3] = input.nextDouble();
        }

   int total=0;
   for (int row=0; row < matrix.length; row++) {
    for (int column=0; column < matrix[row].length; column++) {
          if (row == column){
           total += total + matrix[row][column];
         } else if (row!=column){
           total = 0;
         }
       }
    }

      System.out.println("The sum of elements in the major diagonal is"+total);
  }
}

结果不好! 问题是只有(3,3)元素被添加到总数而不是前三个元素。 怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的代码不起作用,因为它会在您每次离开主对角线时重置总数。

请注意,如果您只想要对角线的元素,则不需要两个循环:而不是运行两个嵌套循环并等待row == column,运行单个循环,并累计值matrix[i][i]

for (int i = 0 ; i != matrix.length ; i++) {
    total += matrix[i][i];
}