Не здесь, но зашел среди профи междусобойчик о самом кратком, но и понятном коде решения этой задачи, причем на разных языках.
Наверное, самый короткий, но и понятный для студентов вариант, получился на PascalABC.Net
( используются лямбда-функции и массив остается без изменений):
Код:
begin
var ar := Seq(45,46,8,11,5,29,37,0,21,43,4,5,58,34,14,18,40,46,30);
ar.Where(x -> x mod 2 = 0).SortedDescending.Print;
Print('');
ar.Where(x -> x mod 2 <> 0).Sorted.Print;
end.
Код:
58 46 46 40 34 30 18 14 8 4 0 5 5 11 21 29 37 43 45