Отсортировать в матрице столбцы по убыванию значений элементов в первой строке.
Данную задачу можно понять так:
См. сортировка выбором. Можно попробовать использовать метод пузырька.
Отличие лишь в том, что цикл сортировки включает перестановку всех элементов очередного столбца матрицы.
const n = 4; m = 6; var arr: array[1..n,1..m] of integer; i,j,k,q,id: byte; min: integer; begin randomize; for i:=1 to n do begin for j:=1 to m do begin arr[i,j] := random(50) - 25; write(arr[i,j]:4); end; writeln; end; k := m; j := 1; while k > 1 do begin min := arr[1,1]; id := 1; for j:=2 to k do if arr[1,j] then begin min := arr[1,j]; id := j; end; arr[1,id] := arr[1,j]; arr[1,j] := min; for i:=2 to n do begin min := arr[i,id]; arr[i,id] := arr[i,j]; arr[i,j] := min; end; k := k - 1; end; writeln; for i:=1 to n do begin for j:=1 to m do write(arr[i,j]:4); writeln; end; readln; end.
Комментарии
Программа на Паскаль написана
Программа на Паскаль написана неверно. Здесь
arr[1,id] := arr[1,j];
arr[1,j] := min;
происходит выход за границы матрицы
Программа работает. Указанные
Программа работает.
Указанные вами строки просто выполняют обмен значений. Ни переменная id, ни j за пределы не выходят