Надо элементы, расположенные между min и max переместить в начало массива, с одновременным их удалением. Подскажите пожалуйста, хотя бы алгоритм как их переместить
 
 
 
 
  Hooligan Цитата
с одновременным их удалением
С удалением чего?
 
 
 
 
  mithquessir
  8.12.2004 4:09
  
 
  volvo Цитата
С удалением чего?
Наверное, элементов из (min,max).
Hooligan Если так, то
Код
const
     n = 8;
     a:array[1..n] of integer = (5,-7,1,2,9,10,4,6);
var
     min,max,min_,max_,i,k,x,m,f:integer;
begin
     min := a[1]; min_ := 1;
     max := a[1]; max_ := 1;
     for i := 2 to n do
     begin
          if a[i] < min then
          begin min_ := i; min := a[i]; end;
          if a[i] > max then
          begin max_ := i; max := a[i]; end;
     end;
     for i := 1 to max_ - min_ -1 do
     begin
          x := a[min_+1];
          for k := min_+1 to max_-1{min_} do
          begin
               a[k] := a[k+1];
          end;
          for f := max_-1 to n do
          a[f] := a[f+1];
          inc(min_);
          for m := n downto 2 do
          a[m] := a[m-1];
          a[1] := x;
     end;
     for i := 1 to n do
     WriteLn(a[i]:3);
end.
Не самое рациональное решение, но, вроде, работает. ;)
 
 
 
 
 
  mithquessir 
При прогоне для массива (5,-7,1,2,9,10,4,6) программа должна выдавать только 6 значений - (5,1,2,9,4,6). А что она у тебя выдает?
 
 
 
 
  мне самому такая вот мысль неожиданно пришла:
Код
if min_index<max_index then
  while min_index<>max_index-1 do
    begin
      m:=a[i];
      a[i]:=a[min_index+1];
      a[min_index+1]:=m;
      i:=i+1;
      min_index:=min_index+1;
    end
else
  while max_index<>min_index-1 do
    begin
      m:=a[i];
      a[i]:=a[max_index+1];
      a[max_index+1]:=m;
      i:=i+1;
      max_index:=max_index+1;
    end;
  
 
 
  mithquessir
  8.12.2004 18:00
  
 
  volvo Цитата
При прогоне для массива (5,-7,1,2,9,10,4,6) программа должна выдавать только 6 значений - (5,1,2,9,4,6). А что она у тебя выдает?
Выдает 9,2,1,5,-7,10,4,6.
Цитата
Надо элементы, расположенные между min и max переместить в начало массива, с одновременным их удалением.
Ты не прав, нужно удалять не min,max элементы, а элементы 
между ними.
 
 
 
 
 
  mithquessir Это тебе кто сказал? Ты сам так решил? Прочти условие:
Цитата
Надо элементы, расположенные между min и max переместить в начало массива
Поэтому, пока автор темы не уточнит задание, его делать бессмысленно.
 
 
 
 
  Бродяжник
  8.12.2004 19:23
  
 
  ...свою пару копеек...
Задачу понимаю так:
Есть массив (вектор) из N чисел. Среди этих чисел есть а) наименьшее, и б) наибольшее. В общем случае они находятся не рядышком, т.е. между ними есть другие числа. И вот эти-то другие числа надо перенести с того места, где они сейчас, в начало массива, сдвинув начальные элементы на освободившееся место. Пример:
Было: 4,3,2,1,0,1,2,3,100,99,98
Стало: 1,2,3,4,3,2,1,0,100,99,98
Тройку чисел 1,2,3 сместили в начало массива.
Так? Если так, тогда рассмотрим "подводные камни".
Кто скажет, как должна работать программа в следующих случаях:
а) 2,2,2,2,2,2,2,2,2
б) 1,2,3,1,2,3,1,2,3
в) 0,0,0,1,2,3,9,9,9
Если кто скажет, как, тогда можно предложить и алгоритм.
 
 
 
 
  Бродяжник 
Ты мой предыдущий пост читал? Ждем автора. Он лучше знает, как звучало условие...  :yes: