Предполагается, что он должен содержать все элементы каждого столбца и давать сумму для каждого столбца. Когда я запускаю его, он просто дает одинаковый ответ для каждого столбца. Я что-то упускаю?Вычисление суммы каждого столбца в матрице возвращает один и тот же результат для каждого столбца
import java.util.Scanner;
public class SumColumnElements {
public static void main(String[] args) {
double[][] matrix = new double [3][4];
Scanner input = new Scanner(System.in);
System.out.println("Enter " + matrix.length + " rows and " + matrix[0].length + " columns:");
for (int row = 0;row < matrix.length; row++) {
for (int column = 0; column < matrix[row].length; column++) {
matrix[row][column] = input.nextDouble();
}
}
sumColumn(matrix,0);
}
public static double sumColumn(double[][] m, int columnIndex) {
double total = 0;
for (int column = 0; column <= columnIndex; column++) {
total = 0;
for (int row = 0; row < m.length; row++) {
total += m[row][column];
//System.out.println("The sum for column "+column+" until row "+row+" is " + total);
}
System.out.println("The sum for column "+ column + " is " + total);
}
return total;
}
}
Любой конкретный язык? –
Я использую DrJava. –
Вы поместили четыре команды println сразу после друг друга; поскольку 'total' не изменяется между этими строками, одно и то же значение используется на каждом выходе. Должна быть только одна команда println, а индекс столбца (0,1,2,3) не должен быть закодирован, а выбран из переменной 'column'. –