Мы уже рассмотрели, как вычислить сумму элементов всех матрицы или найти максимум во всей матрице. Рассмотрим теперь, как сделать это, но для строк или столбцов отдельно.
Начнём с того, что вычислим сумму элементов в первой строке. Заметим, что элементы первой строки определяются тем, что их первый индекс равен нулю, поэтому решением данной задачи является следующий код:
int sum = 0;
for (int j=0; j<size; j++) {
sum += matrix[0][j];
}
Сумма элементов во второй строке вычисляется так:
int sum = 0;
for (int j=0; j<size; j++) {
sum += matrix[1][j];
}
Теперь вычислим сумму элементов первого столбца:
int sum = 0;
for (int i=0; i<size; i++) {
sum += matrix[i][0];
}
Сумма элементов во втором столбце вычисляется так:
int sum = 0;
for (int i=0; i<size; i++) {
sum += matrix[i][1];
}
Заметьте, что во избежание путаницы во всех примерах за номер строки отвечает переменная i, а за номер столбца – переменная j. Хотя, естественно, с точки зрения компилятора эти имена значения не имеют.
А теперь вычислим суммы элементов во всех строках:
for (int i=0; i<size; i++) {
int sum = 0;
for (int j=0; j<size; j++) {
sum += matrix[i][j];
}
cout << "Строка " << i << " ";
cout << "Сумма = " << sum << endl;
}
Важно заметить, что в данной программе переменной sum присваивается значение 0 перед обработкой каждой строки: внутри внешнего цикла.
Вычислить сумму элементов всех столбцов можно так:
for (int j=0; j<size; j++) {
int sum = 0;
for (int i=0; i<size; i++) {
sum += matrix[i][j];
}
cout << "Столбец " << j << " ";
cout << "Сумма = " << sum << endl;
}
В этом примере цикл по i находится уже внутри, поскольку вначале нужно пробежаться по элементам столбца, а потом – по столбцам (используя переменную j).