Дан одномерный массив целого типа. Получить другой массив, состоящий только из нечетных чисел исходного массива, или сообщить, что таких чисел нет. Полученный массив вывести в порядке убывания элементов.
Delphivar a1, a2: array of integer; n, c, i: integer; procedure PrintDescending(a: array of integer); var i, j, max: integer; begin for i := 0 to Length(a) - 1 do begin for j := 0 to Length(a) - 1 do if a[j] > a[max] then max := j; Write(a[max], ' '); a[max] := -10001; end; end; begin //Запрашиваем ввод длины массива: Write('Введите длину массива: '); Read(n); //Устанавливаем длину массивов: SetLength(a1, n); SetLength(a2, n); //Заполняем первый массив случайными числами: for i := 0 to n - 1 do a1[i] := Random(201) - 100; //Заполняем второй массив только нечётными элементами первого: for i := 0 to n - 1 do if Abs(a1[i]) mod 2 = 1 then begin a2[c] := a1[i]; c := c + 1; end; //Урезаем второй массив: SetLength(a2, c); //Выводим первый массив: for i := 0 to n - 1 do Write(a1[i], ' '); Writeln; //Выводим второй массив в порядке убывания: if c = 0 then Write('Нечётных элементов нет.') else PrintDescending(a2); end.
Язык не указан, сделаю на PascalABC.NET 3.6.3:
begin
var A := ArrRandom(10, -99, 99).Where(p -> p.IsOdd).ToArray;
if A.Length > 0 then A.OrderDescending.Println else println('None')
end.
Пример работы: