Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ нужно дорешать задачу на сортировку

Автор: AlexSt 20.05.2007 10:37

Дан двумерный массив целых чисел, содержащий n строк и m столбцов. Упорядочить массив по возрастанию элементов k-го столбца.

program sort_n29;
var a:array[1..100,1..100] of integer;
i,j,n,k,m,j1,l,min,b:integer;
begin readln(n,k);
for i:=1 to n do
for j:=1 to k do
readln(a[i,j])
readln(j1);
for i:=n downto 1 do
begin min:=a[i,j1];
for l:=1 to i-1 do
if min>a[i,j1] then
begin for m:=1 to n do
begin b:=a[m,j1];
a[m,j]:=a[m,j];
min:=a[i,j1];

Что делать делать дальше?

Автор: MAXXX 20.05.2007 13:57

Ты чегото нето вообще пишешь. к-номер столбца, а не размер таблицы, в первом цикле должны быть м и н.
Что такое джейл?Или у тебя н-н,м-к,а к соответоствует джейл? Воодщем, непонятно.Водщем я бы порекомендовал писать так:

Код

Var n,m,k,i,j:Integer;
      a:array[1..100,1..100] of Integer;
Procedure swap(i,j:Integer);
Var w,k:Integer;
begin
For k:=1 to m do
begin
w:=a[i,k];
a[i,k]:=a[j,k];
a[j,k]:=w;
end;
end;
{Menyaet mestani 2 stroki i i j}
begin
Readln(n,m);
For i:=1 to n do
For j:=1 to m do
Read(a[i,j]);
Readln(k);
For i:=1 to n-1 do
For j:=i+1 to n do
If a[i,k]>a[j,k] then Swap(i,j);  
For i:=1 to n do
begin
For j:=1 to m do
Write(a[i,j],' ');
Writeln;
end;
end.

Была использована сортировка пузырьком

Автор: AlexSt 20.05.2007 23:01

MAXXX, СПАСИБО всё работает!