
Нил
6 год назад
Дан одномерный массив, который содержит не более 60 вещественных чисел, среди которых есть положительные, отрицательные и нули. Переставить элементы массива так, чтобы сначала шли нули, потом отрицательные, а затем положительные элементы массива.
ОТВЕТЫ

Maabmerla
Aug 5, 2019
// PascalABC.NET 3.2, сборка 1334 от 12.11.2016
begin
var n:=ReadInteger(n=);
var a:=SeqRandom(n,-20,20).Select(e-gt;real(e)).ToArray;
a.Println;
var b:=a.Where(x-gt;x=0).Concat(a.Where(x-gt;xlt;0)).ToArray;
a:=b.Concat(a.Where(x-gt;xgt;0)).ToArray;
a.Println;
end.
Пример
n= 20
-16 1 16 -11 20 -6 -11 15 0 -9 -14 0 4 -4 2 14 19 7 -14 4
0 0 -16 -11 -6 -11 -9 -14 -4 -14 1 16 20 15 4 2 14 19 7 4
begin
var n:=ReadInteger(n=);
var a:=SeqRandom(n,-20,20).Select(e-gt;real(e)).ToArray;
a.Println;
var b:=a.Where(x-gt;x=0).Concat(a.Where(x-gt;xlt;0)).ToArray;
a:=b.Concat(a.Where(x-gt;xgt;0)).ToArray;
a.Println;
end.
Пример
n= 20
-16 1 16 -11 20 -6 -11 15 0 -9 -14 0 4 -4 2 14 19 7 -14 4
0 0 -16 -11 -6 -11 -9 -14 -4 -14 1 16 20 15 4 2 14 19 7 4
118