我想编写只添加对角线元素的代码。
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)元素被添加到总数而不是前三个元素。 怎么解决这个问题?
答案 0 :(得分:2)
您的代码不起作用,因为它会在您每次离开主对角线时重置总数。
请注意,如果您只想要对角线的元素,则不需要两个循环:而不是运行两个嵌套循环并等待row == column
,运行单个循环,并累计值matrix[i][i]
。
for (int i = 0 ; i != matrix.length ; i++) {
total += matrix[i][i];
}