Два минимальных элемента в строке. Седловые элементы
Pascal(lazarus). Дана задача на седловые элементы(
Во 2 примере даны входные данные и в одной строке может быть 2 минимальных элемента. С такими данными, как седловые у меня выводятся только элементы 1 и 2 строки, 1-го столбца. А должны еще 1 и 2 строки 4 столбца. Как это можно реализовать?
Мой код
Type mas = array [1..2] of integer;
mas1=^mas;
mas2 = array[1..2] of mas1;
mas3=^mas2;
var k,n,m,i,j,jind:byte;
min,max:integer;
A : mas3;
begin
write('Введите количество строк(n) = ');readln(n);
write('Введите количество столбцов(m) = ');readln(m);
getmem(A,n*m*sizeof(integer));
for i:= 1 to n do begin
getmem(A^[i],m*sizeof(integer));
for j:= 1 to m do begin
write('Введите элемент ',i,' строки, ',j,' столбца = ');
readln(A^[i]^[j]);
end;
end;
for i:=1 to n do begin
min:=A^[i]^[1];
jind:=1;
for j:=1 to m do begin
if A^[i]^[j] < min then begin min:=A^[i]^[j]; jind:=j;
end;
end;
max:=A^[i]^[jind];
for k:=1 to n do begin
if max < A^[k]^[jind] then max:=A^[k]^[jind]; end;
if min = max then writeln('Седловой элемент найден в ',i,' строке ',jind,' столбце и равен = ', max)
else writeln('Седловых элементов в ',i,' строке не найдено');
end;
writeln('Заданная матрица = ');
for i:= 1 to n do begin
for j:=1 to m do write(A^[i]^[j]:3);
writeln;
end;
for i:=1 to n do freemem(A^[i],m*sizeof(integer));
freemem(A,n*m*sizeof(integer));
readln;
end.
Результат с данными 2-го примера:
Введите количество строк(n) = 3
Введите количество столбцов(m) = 4
Введите элемент 1 строки, 1 столбца = 2
Введите элемент 1 строки, 2 столбца = 3
Введите элемент 1 строки, 3 столбца = 5
Введите элемент 1 строки, 4 столбца = 2
Введите элемент 2 строки, 1 столбца = 2
Введите элемент 2 строки, 2 столбца = 4
Введите элемент 2 строки, 3 столбца = 6
Введите элемент 2 строки, 4 столбца = 2
Введите элемент 3 строки, 1 столбца = -2
Введите элемент 3 строки, 2 столбца = 7
Введите элемент 3 строки, 3 столбца = 2
Введите элемент 3 строки, 4 столбца = 0
Седловой элемент найден в 1 строке 1 столбце и равен = 2
Седловой элемент найден в 2 строке 1 столбце и равен = 2
Седловых элементов в 3 строке не найдено
Заданная матрица =
2 3 5 2
2 4 6 2
-2 7 2 0
Источник: Stack Overflow на русском