const n=10;
var a:array [1..n] of integer;
i,j,v:integer;
begin
write(' Исходный массив: ');
for i:=1 to n do
a[i]:=random(20);
write(a[i]:4)
end;
writeln;
for j:=1 to n-i do
if (a[j]<a[j+1]) and ((a[j]>9) or (a[j+1]>9)) then
v:=a[j];
a[j]:=a[j+1];
a[j+1]:=v
if (a[j]>a[j+1]) and ((a[j]<=9) or (a[j+1]<=9)) then
write('Отсортированный массив: ');
for i:=1 to n do write(a[i]:4);
end.
Объяснение:
Сначала сортируем числа больше 9, потом числа меньше 10.
const n=10;
var a:array [1..n] of integer;
i,j,v:integer;
begin
write(' Исходный массив: ');
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i]:4)
end;
writeln;
for i:=1 to n do
for j:=1 to n-i do
if (a[j]<a[j+1]) and ((a[j]>9) or (a[j+1]>9)) then
begin
v:=a[j];
a[j]:=a[j+1];
a[j+1]:=v
end;
for i:=1 to n do
for j:=1 to n-i do
if (a[j]>a[j+1]) and ((a[j]<=9) or (a[j+1]<=9)) then
begin
v:=a[j];
a[j]:=a[j+1];
a[j+1]:=v
end;
write('Отсортированный массив: ');
for i:=1 to n do write(a[i]:4);
end.
Объяснение:
Сначала сортируем числа больше 9, потом числа меньше 10.