Консультация № 198325
22.04.2020, 09:03
0.00 руб.
0 1 1
Здравствуйте! Прошу помощи в следующем вопросе:

расположить в массиве R сначала положительные, а затем отрицательные элементы массива Z(30)

pascal

Обсуждение

давно
Профессор
401888
1232
22.04.2020, 09:32
общий
это ответ
Здравствуйте, Ericsson!
[code lang=pascal]const n=30;
var z:array[1..n] of integer;
i,j,k,x:integer;
begin
randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
z[i]:=-5+random(11);
write(z[i]:3);
end;
writeln;
//положительные вперед
k:=0;
for i:=1 to n do
if z[i]>0 then
begin
k:=k+1;
x:=z[i];
for j:=i downto k+1 do
z[j]:=z[j-1];
z[k]:=x;
end;
//отрицательные в конец
k:=0;
for i:=n downto 1 do
if z[i]<0 then
begin
k:=k+1;
x:=z[i];
for j:=i to n-k do
z[j]:=z[j+1];
z[n-k+1]:=x;
end;
//ноли останутся в середине
writeln('Перестановка:');
for i:=1 to n do
write(z[i]:3);
end.[/code]
5
Форма ответа