Напишите программу которая выводит на экран строку матрицы сумма элементов которой наибольшая
Перейти к содержимому

Напишите программу которая выводит на экран строку матрицы сумма элементов которой наибольшая

Найти строку матрицы с максимальной суммой элементов

В двумерном массиве (матрице) найти строку, сумма элементов которой является максимальной среди всех строк матрицы.

Решение

Решения данной задачи, когда требуется найти только одну строку с максимальной суммой элементов и когда таких строк несколько и все их надо определить, несколько различаются.

Рассмотрим сначала первый случай. Предположим, что в матрице суммы всех строк различны или для решения задачи достаточно найти первую с максимальной суммой.

Пусть переменная sum_max хранит найденную максимальную сумму. Переменная row_max хранит номер строки, элементы которой дают в сумме максимум.

Перебираем построчно матрицу. Перед вложенным циклом переменной sum (хранит сумму элементов текущей строки) присваиваем 0. Во вложенном цикле перебираются элементы текущей строки. Значение каждого из них добавляется к sum .

После того, как сумма элементов текущей строки посчитана (вышли из внутреннего цикла), проверяем не больше ли она значения, хранимого в sum_max . Если больше, то записываем ее в sum_max , а переменной row_max присваиваем номер текущей строки (хранится в переменной i ).

В конце программы выводим значения sum_max и row_max (она содержит ответ задачи — номер искомой строки) на экран. В данном случае будет найдена только первая строка с максимальной суммой. Если бы в условном операторе использовался логический оператор > = (больше или равно), то, при наличии нескольких строк с максимальной суммой, была бы выведена на экран последняя.

Теперь обратимся ко второму случаю, когда надо определить все строки с максимальной суммой элементов, если таковых несколько. В данном случае следует использовать два отдельных перебора матрицы. В первом просто определяется максимум. Во втором на экран выводятся номера строк, сумма элементов которых совпала с ранее найденным максимальным значением.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *