@nikitasa

Правильно ли написан код для задачи?

Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размером 10 на 15 напечатайте индексы всех ее седловых точек
const
  n = 10;
  m = 15;
var
  a: array[1..n, 1..m] of integer;  
  Rext: array[1..n, 1..2] of integer; 
  Cext: array[1..2, 1..m] of integer;
  i, j, amin, amax: integer;
begin
  Randomize;
  writeln('Исходный массив');
  for i := 1 to n do
  begin
    for j := 1 to m do
    begin
      a[i, j] := random(100) - 50;
      write(a[i, j]:4);
    end;
    writeln;
  end;
  Rext n x 2
  for i := 1 to n do
  begin
    amin := 10000; 
    amax := -10000; 
    for j := 1 to m do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Rext[i, 1] := j
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Rext[i, 2] := j
      end
    end;
  end;
   Cext 2 x m
  for j := 1 to m do
  begin
    amin := 10000;  
    amax := -10000; 
    for i := 1 to n do
    begin
      if amin > a[i, j] then begin
        amin := a[i, j]; Cext[1, j] := i
      end;
      if amax < a[i, j] then begin
        amax := a[i, j]; Cext[2, j] := i
      end
    end
  end;
  writeln;
  writeln('*** Седловые точки ***');
  for i := 1 to n do
  begin
    j := Rext[i, 1];
    if Cext[2, j] = i then
      write('[', i, ',', j, '] ')
    else begin
      j := Rext[i, 2];
      if Cext[1, j] = i then
        write('[', i, ',', j, '] ')
    end;
  end;
  writeln
end.
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
ZERGeich
@ZERGeich
Вы не читали и не запускали "собственный" код.
637435865c31e996380335.jpeg
6374358cb0c4b854904502.jpeg
63743592a2f05654426076.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы