Другие языки программирования и технологии

В массиве А[5,5] отсортировать элементы первой строки по убыванию, а последней по возрастанию.

У меня сортируются все строки, а должны только 1 и последняя.



var a:array[1..5,1..5] of integer;
b,i,j,l,n:integer;
begin
n:=5;
writeln ('Исходный массив');
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(10);
write (a[i,j]:4)
end;
writeln;
end;
for l:=1 to n-1 do
for i:=1 to n-l do
for j:=1 to n-l do
if(a[i,j]<a[i,j+1]) then
begin
b:=a[i,j+1];
a[i,j+1]:=a[i,j];
a[i,j]:=b;
end;
writeln;
for l:=1 to n-1 do
for i:=1 to n-l do
for j:=1 to n-l do
if(a[n,j]>a[n,j+1]) then
begin
b:=a[n,j+1];
a[n,j+1]:=a[n,j];
a[n,j]:=b;
end;

for i:=1 to n do
begin
for j:=1 to n do
begin
write (a[i,j]:3,' ');
end;
writeln ;
end;
end.
Gans From Zhezdy
Gans From Zhezdy
299
У Вас зачем-то тройные циклы, которые здесь не нужны, а нужно вот что:
 const n = 5; 
var a:array[1..n,1..n] of integer;
b, i, j: integer;
begin
randomize();
writeln('Исходный массив:');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := random(10);
write (a[i, j]: 4)
end;
writeln()
end;
for i := 2 to n do
for j := n downto i do
if a[1, j - 1] < a[1, j] then
begin
b := a[1, j - 1];
a[1, j - 1] := a[1, j];
a[1, j] := b
end;
for i := 2 to n do
for j := n downto i do
if a[n, j - 1] > a[n, j] then
begin
b := a[n, j - 1];
a[n, j - 1] := a[n, j];
a[n, j] := b
end;
writeln();
writeln('Отсортированный массив:');
for i := 1 to n do
begin
for j := 1 to n do write (a[i, j]: 4);
writeln()
end
end.
Так всё будет точно по заданию.
И ещё можно попробовать несколько типов простейшей сортировки вроде пузырьковой, как у меня, или прямым выбором, хотя это и не обязательно.
G'ulomjon Isxakov
G'ulomjon Isxakov
66 573
Лучший ответ
А зачем ты их сортируешь все-то? Первую и последнюю и сортируй.
Игорь Абашин
Игорь Абашин
83 927

Похожие вопросы