В каждом столбце матрицы упорядочить по возрастанию все элементы,расположенные между минимальным и максимальным элементами этого столбца.
решите кто может...
const
nRow = 5;
nCol = 4;
var
a: array[1 .. nRow, 1 .. nCol] of integer;
i, j, k, T: integer;
min_ix, max_ix: integer;
begin
for i := 1 to nRow do
begin
writeln('вводим ряд #', i);
for j := 1 to nCol do
begin
write('a[', i, ', ', j, '] = ');
readln(a[i, j]);
end;
end;
for i := 1 to nCol do
begin
min_ix := 1; max_ix := 1;
for j := 1 to nRow do
begin
if a[j, i] < a[min_ix, i] then min_ix := j;
if a[j, i] > a[max_ix, i] then max_ix := j;
end;
if min_ix > max_ix then
begin
T := min_ix; min_ix := max_ix; max_ix := T
end;
for j := min_ix to max_ix do
for k := j to max_ix do
if a[j, i] > a[k, i] then
begin
T := a[j, i]; a[j, i] := a[k, i]; a[k, i] := T
end;
end;
for i := 1 to nRow do
begin
for j := 1 to nCol do
write(a[i, j]:4);
writeln
end;
writeln('press enter');
readln
end.
ConstЯ мог допустить ошибку, только если уже хочу спать ...
n=10;
m=10;
Type
atype=array[1..n,1..m] of integer;
var
a:atype;
i,j:integer;
min,min0,max,max0:integer;
si,sj:integer;
ssi,ssj:integer;
k,l:integer;
begin
for i:=1 to n do for j:=1 to m do read(a[i,j]); {ввод}
For j:=1 to m do
begin
Min0:=MaxInt;
For i:=1 to n do If a[i,j]<min0 then begin min0:=a[i,j]; si:=i; end;
{Это был поиск минимального}
Max0:=-maxint;
For i:=1 to n do If a[i,j]>max0 then begin max0:=a[i,j]; ssi:=i; end;
{это был поиск минимума}
{тперь сортируем}
If ssi>si then
begin
for i:=ssi downto si do for k:=si to i-1 do
begin
If a[k,j]>a[k+1,j] then begin l:=a[k,j]; a[k,l]:=a[k+1,l]; a[k+1,l]:=l; end;
end;
end;
end;
{все, остортировали, осталось только вывести}
end.
можно поставить:
for j := min_ix to max_ix do
for k := j to max_ix do
if a[j, i] > a[k, i] then
begin
T := a[j, i]; a[j, i] := a[k, i]; a[k, i] := T
end;
for j := min_ix+1 to max_ix-1 do
for k := j to max_ix-1 do
if a[j, i] > a[k, i] then
begin
T := a[j, i]; a[j, i] := a[k, i]; a[k, i] := T
end;