В одномерном массиве А=(а1, а2, …, аn) группу, содержащую наибольшее число подряд идущих положительных элементов, переписать в «хвост» массива — Pascal(Паскаль)

uses crt;
const nmax=100;
var a:array[1..nmax] of integer;
      n,i,j,k,p1,p2,max,x: integer;
begin
clrscr;
repeat
write('Размер массива до ',nmax,' n=');
readln (n);
until n in [1..nmax];
writeln('Введите ',n,' элементов массива, целых чисел');
for i:=1 to n do
readln (a[i]);
{Поиск позиции и длины максимальной цепи}
k:=0; max:=0; {Первоначальные значения}
for i:=1 to n do
if a[i]>0 then inc (k) {Если положительное - наращиваем счётчик}
else {Иначе}
  begin {Если счётчик перерос максимальный - перезапоминаем его и позицию}
   if k>max then
      begin
        max:= k;
        p2:=i-1;
        p1:=p2-k+1;
        k:=0;  {Снова включаем счётчик}
      end;
  end;
writeln; {Выводим результат}
writeln('Максимальное число положительных подряд=',max);
writeln('Последовательность');
for i:=p1 to p2 do
write (a[i],' ');
writeln;
for i:=1 to max do
 begin
  x:=a[p1];
  for j:=p1 to n-1 do
  a[j]:=a[j+1];
  a[n]:=x;
 end;
writeln('Перестановка последовательности в конец массива:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Leave a Comment

4 + 3 =