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 > 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; //заведомо больше a[i,j] amax : = -10000; //заведомо меньше a[i,j] 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. тестовое решение: исходный массив 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]
Спасибо
Популярные вопросы