Методом выбора отсортировать по убыванию только нечётные элементы — Pascal(Паскаль)

{сортировка выбором нечетных по убываниюпо возрастанию}
uses crt;
const nmax=100;
var a:array [1..nmax]of integer;
    n,i,j,ip,nmin,buf:integer;
Begin
clrscr;
randomize;
repeat
write('Размер массива до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  a[i]:=random(100);
  write(a[i]:4);
 end;
writeln;
writeln;
ip:=0;
for i:=n downto 1 do
if odd(a[i]) then ip:=i;
if ip=0 then write('Нечетных элементов нет!')
else
 begin
  i:=ip;
  while i<=n-1 do
  if odd(a[i]) then
   begin
    nmin:=i;
    for j:=i+1 to n do
    if odd(a[j])and(a[j]>a[nmin]) then nmin:=j;
    buf:=a[i];
    a[i]:=a[nmin];
    a[nmin]:=buf;
    i:=i+1;
   end
  else i:=i+1;
  writeln('Упорядоченный массив: ');
  for i:=1 to n do
  write(a[i]:4);
 end;
readln;
end.

Leave a Comment

+ 85 = 93