Дан двумерный массив поменять местами строку с наибольшим и наименьшим значением

0 голосов
53 просмотров

Дан двумерный массив поменять местами строку с наибольшим и наименьшим значением


Информатика (79 баллов) | 53 просмотров
0

Окей, строки

Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1443 от 19.05.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var n:=ReadInteger('Количество строк в массиве:');
  var m:=ReadInteger('Количество колонок в массиве:');
  Writeln('*** Исходный массив [',n,',',m,'] ***');
  var a:=MatrRandom(n,m,-99,99);
  a.Println(4); Writeln(4*a.ColCount*'-');
  var s:=a.ElementsWithIndexes;
  var max:=s.MaxBy(x->x[2]);
  var min:=s.MinBy(x->x[2]);
  a.SwapRows(max[0],min[0]);
  Writeln('*** Результирующий массив ***');
  a.Println(4)
end.

Пример
Количество строк в массиве: 6
Количество колонок в массиве: 9
*** Исходный массив [6,9] ***
  42 -66 -81  85  62 -36 -54  54  93
  80  32 -85 -44  54 -99  72  53  59
  20  50  27  98 -40  43 -52 -48 -92
  37 -86 -53 -81  85  16 -31 -37  93
  36  75  76 -95  38 -15  29 -86  97
  12  94 -38 -52  86 -13 -99  91   1
------------------------------------
*** Результирующий массив ***
  42 -66 -81  85  62 -36 -54  54  93
  20  50  27  98 -40  43 -52 -48 -92
  80  32 -85 -44  54 -99  72  53  59
  37 -86 -53 -81  85  16 -31 -37  93
  36  75  76 -95  38 -15  29 -86  97
  12  94 -38 -52  86 -13 -99  91   1
(150k баллов)