
Вопрос задан 29.07.2023 в 05:51.
Предмет Информатика.
Спрашивает Глебачева Мария.
PASCAL: Двухмерный массив. В метании молота состязается n спортсменов. Каждый из них сделал m
бросков. Победителем считается тот спортсмен, у которого сумма результатов по всем броскам максимальна. Если перенумеровать спортсменов числами от 0 до n-1, а попытки каждого из них - от 0 до m-1, то на вход программа получает массив A[n, m], состоящий из неотрицательных целых чисел. Программа должна определить максимальную сумму чисел в одной строке и вывести на экран эту сумму и номер строки, для которой достигается эта сумма. Входные данные Программа получает на вход два числа n и m, являющиеся числом строк и столбцов в массиве. Далее во входеом потоке идет n строк по m чисел, являющихся элементами массива. Выходные данные Программа должна вывести 2 числа: сумму и номер строки, для которой эта сумма достигается. Если таких срок несколько, то выводится номер наименьшей из них. Не забудьте, что нумерация строк (спортсменов) начинается с 0. Примеры входные данные выходные данные 2 2 9 5 4 1 3 5

Ответы на вопрос

Отвечает Гончарова Настя.
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018
Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2;
var a:=ReadMatrInteger(n,m);
var i:=a.Rows.Select(row->row.Sum).ToArray.IndexMax;
Writeln(a.Row(i).Sum,' ',i)
end.
Внимание! Если программа не работает, обновите версию!
begin
var (n,m):=ReadInteger2;
var a:=ReadMatrInteger(n,m);
var i:=a.Rows.Select(row->row.Sum).ToArray.IndexMax;
Writeln(a.Row(i).Sum,' ',i)
end.




Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи нахождения максимальной суммы чисел в одной строке и соответствующего номера строки в двумерном массиве, необходимо пройтись по каждой строке массива, вычислить сумму элементов строки и сравнить ее с текущим максимумом. Если найденная сумма больше текущего максимума, то обновить максимум и запомнить номер строки.
Вот пример кода на языке Pascal для решения этой задачи:
pascalprogram MaxSumInRow; const MAX_N = 100; MAX_M = 100; var A: array [0..MAX_N - 1, 0..MAX_M - 1] of Integer; n, m: Integer; i, j, maxSum, maxSumRow: Integer; begin { Ввод размеров массива } Readln(n, m); { Ввод элементов массива } for i := 0 to n - 1 do for j := 0 to m - 1 do Read(A[i, j]); { Инициализация начальных значений максимальной суммы и номера строки } maxSum := 0; maxSumRow := 0; { Поиск максимальной суммы и номера строки } for i := 0 to n - 1 do begin { Вычисление суммы элементов строки } var sum := 0; for j := 0 to m - 1 do sum := sum + A[i, j]; { Обновление максимальной суммы и номера строки } if sum > maxSum then begin maxSum := sum; maxSumRow := i; end; end; { Вывод результата } Writeln(maxSum, ' ', maxSumRow); end.
Пожалуйста, убедитесь, что входные данные соответствуют ожидаемому формату, а также что n и m не превышают значения MAX_N и MAX_M соответственно. В данном примере эти значения установлены на 100, но в реальной задаче можно выбрать другие подходящие значения, если необходимо обрабатывать большие массивы.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili