Дан одно мерный массив, состоящий из 20 элементов, заполненый случайными числами от -10 до 25. Сформировать из него 3 новых массива:
1) из значений элементов исходного массива, оканчивающихся на 4 и найти в нем сумму всех значений
2) из положительных элементов кратных 3 и переставить местами элементы, стоящие на четных местах с элементами стоящими на нечетных
3) из чисел исходного массива, находящихся в четных ячейках и отсортировать его по возрастанию.
Answers & Comments
const n = 20;
var i,k,z,x,y,r,sumb:integer;
a,b,c,d:array [1..n] of integer;
begin
k:=1;
x:=0;
sumb:=0;
for i:=1 to n do a[i]:=random(-10,25);
for i:=1 to n do
begin
if abs(a[i]) mod 10 = 4 then
begin
inc(r);
b[r]:=a[i];
sumb:=sumb+b[r];
end;if (a[i]>0) and (a[i] mod 3=0) then
begin
inc(z);
c[z]:=a[i];
if z mod 2 = 0 then
begin
x:=c[z];
c[z]:=c[z-1];
c[z-1]:=x;
end;
end;
if i mod 2 =0 then
begin
inc(y);
d[y]:=a[i];
end;
end;
while k<>y do
begin
inc(k);
if d[k]>d[k+1] then
begin
x:=d[k+1];
d[k+1]:=d[k];
d[k]:=x;
k:=0;
end;
end;
writeln('Исходный массив:');
for i:=1 to n do write(a[i],' ');
writeln;
writeln('Первый сформированный массив:');
k:=0;
for i:=1 to r do
begin
write(b[i],' ');
inc(k);
end;
if k=0 then writeln('в массиве нет чисел')
else writeln;
writeln('Сумма членов первого массива: ',sumb);
writeln('Второй сформированный массив:');
for i:=1 to z do write(c[i],' ');
writeln;
writeln('Третий сформированный массив:');
for i:=1 to y do
begin
if d[i]=d[i+1] then write
else write(d[i],' ');
end;
end.