Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2007, 19:32   #1
AliVe
Новичок
Джуниор
 
Регистрация: 11.04.2007
Сообщений: 2
Восклицание Задача на одномерный массив

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

Последний раз редактировалось AlDelta; 19.11.2007 в 20:11.
AliVe вне форума Ответить с цитированием
Старый 19.11.2007, 21:35   #2
Abbatik
Форумчанин
 
Аватар для Abbatik
 
Регистрация: 11.11.2007
Сообщений: 136
По умолчанию

Код:
Program DEAD_AFFTAR;
uses crt;
var t,i,N,x,y:integer;
    max, min:real;
    C: array [1..50] of integer;
    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 );
      writeln;
  max:=c[1];
  x:=1;

    for i:=1 to n do begin
      if c[i]>max then
     begin
      max:=c[i];
      x:=i;
      end;
 end;
 for i:=x to n-1 do
 begin
 t:=c[i];
 c[i]:=c[i+1];
 c[i+1]:=t;
 end;
  min:=c[1];
  y:=1;
    for i:=1 to n do begin
     if c[i]<min then
     begin
      min:=c[i];
      y:=i;
     end;
 end;
 for i:=y downto 2 do begin
 t:=c[i];
 c[i]:=c[i-1];
 c[i-1]:=t;
 end;

for i:=1 to n do
    write (c[i]:8);
readkey;
end.
ICQ - 446037211
Abbatik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
одномерный массив ldx Паскаль, Turbo Pascal, PascalABC.NET 4 06.06.2008 17:45
VBA. Одномерный массив ExMatiss Microsoft Office Excel 9 07.05.2008 05:57
одномерный массив fatdog Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 23.02.2008 10:05
Массив Одномерный flait111 Помощь студентам 3 15.12.2007 14:08
Одномерный массив SkyDreamer Помощь студентам 1 01.12.2007 21:22