" Дан одномерный массив целых чисел A[1..n]. Напишите программу, которая перепишет в массив B[1..n] сначала в убывающем порядке все отрицательные элементы массива А, а затем в возрастающем порядке все положительные элементы мас...

" Дан одномерный массив целых чисел A[1..n]. Напишите программу, которая перепишет в массив B[1..n] сначала в убывающем порядке все отрицательные элементы массива А, а затем в возрастающем порядке все положительные элементы массива А. Например, для A = (4, -8, 7, -6, 0, -7, 5), получим B = (-6, -7, -8, 0, 4, 5, 7)."
Гость
Ответ(ы) на вопрос:
Гость
// PascalABC.NET 3.2, сборка 1386 от 17.02.2017 // Внимание! Если программа не работает, обновите версию! begin   var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;   var b:=(a.Where(x->x<0).SortedDescending)+(a.Where(x->x>0).Sorted);   b.Println end. Пример n= 10 -31 -72 -48 28 24 -98 -32 -1 56 -72 -1 -31 -32 -48 -72 -72 -98 24 28 56
Гость
//PascalABC.Net 3.2 procedure mysort(var mas: array of integer; int: integer); begin setLength(mas, length(mas)+1); mas[length(mas)-1]:=int; end; begin var a:=readarrinteger('Вводите A:', readinteger('n =')); var a1, a2: array of integer; for var i:=0 to length(a)-1 do if a[i]<0 then mysort(a1, a[i]) else mysort(a2, a[i]); if length(a1)>0 then begin sort(a1); for var i:=length(a1)-1 downto 0 do a[length(a1)-1-i]:=a1[i]; end; if length(a2)>0 then begin sort(a2); for var i:=length(a1) to length(a)-1 do a[i]:=a2[i-length(a1)]; end; write (a); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы