четверг, 10 декабря 2009 г.

найти минимальное в массиве и упорядочить по убыванию до...

Написать программу, которая упорядочивает по убыванию ту часть последовательности, которая находиться до минимального элемента этой последовательности

const
   N = 10;

var
   a: array [1..N] of integer;
   i, j: integer;
   imin: integer;
   temp: integer;
   
begin
   {init random}
   for i:=1 to N do a[i]:=random(100);
   
   write('before: ');
   for i:=1 to N do write(a[i]:3);
   writeln;
   
   imin := 1;

   for i:=2 to N do begin
      if a[i] < a[imin] then imin := i;
   end;
   
   writeln('min is a[', imin, '] = ', a[imin]);
   
   for i:=1 to imin-2 do begin
      for j:=i+1 to imin-1 do begin
         if a[i] < a[j] then begin
            temp:=a[i];
            a[i]:=a[j];
            a[j]:=temp;
         end;
      end;
   end;

   write('after: ');
   for i:=1 to N do begin
      if i = imin then write('[');
      write(a[i]:3);
      if i = imin then write(']');
   end;
   writeln;

   
end.
вывод
before:  48 63  9 75  2 98 28 13  5 10
min is a[5] = 2
after:  75 63 48  9[  2] 98 28 13  5 10

Комментариев нет:

Отправить комментарий