Pascal одномерный массив. Упорядочить каждые вторые ненулевые элементы последней четверти одномерного массива по убыванию обратных значений
Ответы
Ответ дал:
0
PascalABC.NET 3.4.0, сборка 1671 от 31.05.2018
Внимание! Если программа не работает, обновите версию!
begin
var n:=36;
var a:=ArrRandom(n,-50,50); a.Println;
var n4:=n div 4;
var (s1,s2):=a.Select((v,i)->(v,i)).TakeLast(n4).Where(t->t[0]<>0)
.Slice(1,2).OrderByDescending(t->1/t[0]).UnZipTuple;
foreach var t in s1.ZipTuple(s2.Sorted) do a[t[1]]:=t[0];
a.Println
end.
Внимание! Если программа не работает, обновите версию!
begin
var n:=36;
var a:=ArrRandom(n,-50,50); a.Println;
var n4:=n div 4;
var (s1,s2):=a.Select((v,i)->(v,i)).TakeLast(n4).Where(t->t[0]<>0)
.Slice(1,2).OrderByDescending(t->1/t[0]).UnZipTuple;
foreach var t in s1.ZipTuple(s2.Sorted) do a[t[1]]:=t[0];
a.Println
end.
Приложения:

Похожие вопросы
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад
9 лет назад