Элемент матрицы назовем седловой точкой,если он является минимальным в собственной строке

Элемент матрицы назовем седловой точкой,если он является наименьшим в собственной строке и сразу величайшим в собственном столбце либо,напротив,является величайшим в собственной строке и наименьшим в собственном столбце. Для данной целой матрицы размером n*m напечатать индексы всех ее седловых точек.

Задать свой вопрос
1 ответ
Const
  n = 4;
  m = 6;

var
  a: array[1..n, 1..m] of integer;  // главной массив
  Rext: array[1..n, 1..2] of integer; // номера столбцов с min и max в строчках
  Cext: array[1..2, 1..m] of integer; // номера строк с min и max в столбцах
  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;  //заведомо больше a[i,j]
    amax := -10000; //заранее меньше a[i,j]
    for j := 1 to m do
    begin
      if amin gt; a[i, j] then begin
        amin := a[i, j]; Rext[i, 1] := j
      end;
      if amax lt; 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;  //заранее больше a[i,j]
    amax := -10000; //заранее меньше a[i,j]
    for i := 1 to n do
    begin
      if amin gt; a[i, j] then begin
        amin := a[i, j]; Cext[1, j] := i
      end;
      if amax lt; 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.

Тестовое решение:

Начальный массив
  35  34 -17 -33  20 -29
  -8 -31  -4 -20   8  -1
 -39  -7 -12  27  42   9
  32  13 -17  37  19 -24

*** Седловые точки ***
[2,5]



, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт