На Паскале.
Задан массив из N действительных чисел(N может быть задано не более 25). Отрицательные
числа в заданном массиве упорядочить по убыванию их значений. Взаимное расположение
отрицательных и положительных чисел сохранить. Вывести на экран исходный и новый
массивы.

Const n=20;
var 
a,b:array[1..n] of integer;
i,j,k,m,c:integer; 
begin
Randomize;
writeln(Исходный массив:);
for i:=1 to n do
 begin
  a[i]:=random(51)-25;
  write(a[i]:5);
 end;
writeln;
j:=0;
for i:=1 to n do
 if a[i]<0 then begin j:=j+1; b[j]:=a[i]; end;
m:=j;
for k := 1 to m-1 do
  for i := 1 to m-k do
     if (b[i]       begin
       c:=b[i]; b[i]:=b[i+1]; b[i+1]:=c;
       end;
writeln(Вспомогательный массив:);
for i:=1 to m do write(b[i]:5);
writeln;
j:=0;
for i:=1 to n do
 if a[i]<0 then begin j:=j+1; a[i]:=b[j]; end;
writeln(Полученный массив:);
for i:=1 to n do write(a[i]:5);
writeln;
end.

Пример:
Исходный массив:
  -15   -8   -6  -13   15   24    5   -2   14   -1   19   -2   -7   -8  -23   20   -2    7   -2  -10
Вспомогательный массив:
   -1   -2   -2   -2   -2   -6   -7   -8   -8  -10  -13  -15  -23
Полученный массив:
   -1   -2   -2   -2   15   24    5   -2   14   -6   19   -7   -8   -8  -10   20  -13    7  -15  -23

Оцени ответ
Подпишись на наш канал в телеграм. Там мы даём ещё больше полезной информации для школьников!

Загрузить картинку