Объяснение:
program odd;
var
arr1, arr2: array[1..23] of integer;
i, cnt, tmp, buffer: integer;
begin
writeln('исходный массив:');
for i := 1 to 23 do
arr1[i] := random(100);
write(arr1[i], ' ');
end;
writeln();
cnt := 0; //считем сколько нечетных, переносим в другой массив
if arr1[i] mod 2 <> 0 then
cnt := cnt + 1;
arr2[cnt] := arr1[i];
//сортируем arr2 пузырьком
for i := (cnt - 1) downto 1 do
tmp := i;
while ((tmp < cnt) and (arr2[tmp] > arr2[tmp + 1])) do
//swap
buffer := arr2[tmp];
arr2[tmp] := arr2[tmp + 1];
arr2[tmp + 1] := buffer;
tmp := tmp + 1;
Writeln('отсортированные нечетные:');
for i := 1 to cnt do
write(arr2[i], ' ');
writeln('всего: ', cnt);
end.
--- PascalABC.NET 3.6.2 ---
var A := ArrRandom(23, -99,99);
A.Where(p -> p mod 2 <> 0).Sorted.Println.Count.Println;
Да, это полноценная работающая программа, решающая вашу задачу.
Объяснение:
program odd;
var
arr1, arr2: array[1..23] of integer;
i, cnt, tmp, buffer: integer;
begin
writeln('исходный массив:');
for i := 1 to 23 do
begin
arr1[i] := random(100);
write(arr1[i], ' ');
end;
writeln();
cnt := 0; //считем сколько нечетных, переносим в другой массив
for i := 1 to 23 do
begin
if arr1[i] mod 2 <> 0 then
begin
cnt := cnt + 1;
arr2[cnt] := arr1[i];
end;
end;
//сортируем arr2 пузырьком
for i := (cnt - 1) downto 1 do
begin
tmp := i;
while ((tmp < cnt) and (arr2[tmp] > arr2[tmp + 1])) do
begin
//swap
buffer := arr2[tmp];
arr2[tmp] := arr2[tmp + 1];
arr2[tmp + 1] := buffer;
tmp := tmp + 1;
end;
end;
Writeln('отсортированные нечетные:');
for i := 1 to cnt do
write(arr2[i], ' ');
writeln();
writeln('всего: ', cnt);
end.
--- PascalABC.NET 3.6.2 ---
begin
var A := ArrRandom(23, -99,99);
A.Where(p -> p mod 2 <> 0).Sorted.Println.Count.Println;
end.
Да, это полноценная работающая программа, решающая вашу задачу.