Помощь - Поиск - Пользователи - Календарь
Полная версия: сортировка столбцов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
FosteR
Прошу помочь с составлением алгоритма по сортировке столбцов в массиве mxn по возрастанию сумм их элементов.получилось реализовать только сортировку в двух столбцах...
Айра
Выкладывай, что сделал - дополним или исправим))
FosteR
Вот собсно прога,иногда даже сортирует некоторые столбцы правельно...
Код

program pop;
uses crt;
var
B,C:array[1..10,1..10] of integer;
i,j,m,z,n,sum,k,d:integer; E,T:array [1..10] of integer;
begin
randomize;
ClrScr;{ну вводим кол-во строк и столбцов в массиве}
Writeln('wwedite kol-vo strok'); readln(m);
Writeln('vvedite kol-vo stolbcov'); readln(n);
{заполняем рандомными числами}
for i:=1 to m do begin
writeln;
for j:=1 to n do begin
b[i,j]:=-10+random(10-(-10));
write(' ',b[i,j],' ');
end;end;
{находим сумму столбцов и записываем их в массив Т{j}}
writeln; writeln('summa stolbcov');
for j:=1 to n do begin
for i:=1 to m do begin
sum:=sum+b[i,j];end;write(' ',sum,' ');T[j]:=sum; sum:=0; end;
{вот собственно и сама сортировка(на всякий случай сделал чтоб повторял цикл 25 раз}
while z<25 do begin
for k:=1 to n do begin
if t[k]>t[k+1] then begin
for j:=1 to n-1 do begin
for i:=1 to m do begin
d:=b[i,j]; b[i,j]:=b[i,j+1]; b[i,j+1]:=d; d:=0;
  end;end;;end;end;z:=z+1;end;
{ну и распечатываем отсортированный массив}
writeln;
for i:=1 to m do begin
writeln;
for j:=1 to n do begin
write(' ',b[i,j],' ');
end;
end;
readln;
end.
FosteR
Ну что, неужели никаких мыслей?
Айра
Есть одна мысль: можешь привести прогу к номарльному виду и воспользоваться тегами? smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.