Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на одномерный массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
ReQu1eM
Аллоха! В общем есть задача: ввести одномерный массив C(N)(N<=50). Переставить в нем элементы так, чтобы начале находился минимальный элемент, в конце максимальный, а все остальные элементы сохранили прежний порядок.
Т.е. был массив 4 5 2 89 3 7 9
а получаецо 2 4 5 3 7 9 89;
И никак не могу сделать цикл на перестановку этих элементов(работает тока 1 раз), вот собствено код, подскажите как этот цикл сделать?

Код
Program DEAD_AFFTAR;
uses crt;
var i,N,x,y:integer;
    max, min:real;
    C: array [1..50] of real;
    p,q:real;
begin
clrscr;
  write ('N='); readln(n);
    for i:=1 to n do
     begin
      write ('c[',i,']='); readln (c[i]);
     end;
    for i:=1 to n do
      write (c[i]:8:3 );
      writeln;
  max:=C[1];
  x:=1;
    for i:=1 to n do
      if c[i]>max then
     begin
      max:=c[i];
      x:=i;
      end;
  min:=c[i];
  y:=1;
    for i:=1 to n do
    if c[i]<min then
     begin
      min:=c[i];
      y:=i;
     end;
for i:=1 to n do
  begin
   p:=c[y];
   c[y]:=c[y-1];
   c[y-1]:=p;
  end;
for i:=1 to n do
  begin
   q:=c[x];
   c[x]:=c[x+1];
   c[x+1]:=q;
  end;
for i:=1 to n do
    write (c[i]:8:3);
readkey;
end.
мисс_граффити
так?
Program DEAD_AFFTAR;
uses crt;
var i,N,x,y:integer;
max, min:real;
C: array [1..50] of real;
p,q:real;
begin
clrscr;
write ('N='); readln(n);
for i:=1 to n do
begin
write ('c[',i,']='); readln (c[i]);
end;
for i:=1 to n do
write (c[i]:8:3 );
writeln;
max:=C[1];
x:=1;
for i:=1 to n do
if c[i]>max then
begin
max:=c[i];
x:=i;
end;

for i:=x to n-1 do
c[i]:=c[i+1];

min:=c[i];
y:=1;
for i:=1 to n do
if c[i]<min then
begin
min:=c[i];
y:=i;
end;

for i:=y downto 2 do
c[i]:=c[i-1];

c[1]:=min;
c[n]:=max;
for i:=1 to n do
write (c[i]:8:3);
readkey;
end.
Гость
Оооо слава великому Джа! РЕСПЕКТ и УВАЖУХА те товарисч! сталин не забудит тя))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.