• Задан массив из 20 чисел. Преобразовать его по следующему принципу: все отрицательные элементы перенести в начало массива, а все остальные в конец, сохраняя исходное взаимное расположение, как среди отрицательных, так и среди остальных элементов массива. Элементы массива не сортировать.
    Буду очень благодарна за помощь :)

Ответы 4

  • Спасииибо
  • Пожалуйста
    • Автор:

      karsyn
    • 5 лет назад
    • 0
  • const n=20;var a:array[1..n] of integer;i,j,k,c:integer;beginRandomize;for i:=1 to n do begin a[i]:=random(51)-25; write(a[i]:4); end;writeln;k:=0;for i:=1 to n do if a[i]<0 then  begin  k:=k+1;  c:=a[i];  for j:=i-1 downto k do a[j+1]:=a[j];  a[k]:=c;  end;for i:=1 to n do write(a[i]:4);writeln;end.Пример:   5  25  24 -20  13  18  -2  21 -24  14  -2 -25 -18  13  23  11  22 -22 -21 -22 -20  -2 -24  -2 -25 -18 -22 -21 -22   5  25  24  13  18  21  14  13  23  11  22
    • Автор:

      dixie5bdg
    • 5 лет назад
    • 0
  • Современные версии программного обеспечения (и в том числе, для языка Паскаль) позволяют в короткие сроки создавать очень короткие, наглядные и эффективные решения.// PascalABC.NET 3.1, сборка 1250 от 28.05.2016begin  var a:=ArrRandom(20,-99,99); a.Println;  a.Where(x->x<0).Concat(a.Where(x->x>=0)).Printlnend.Тестовое решение88 94 55 -38 43 -72 3 -26 -1 -23 84 93 40 -8 -25 77 4 39 -50 3-38 -72 -26 -1 -23 -8 -25 -50 88 94 55 43 3 84 93 40 77 4 39 3Замечание:Если стоит задача получить именно массив, а потом его вывести, можно написать так:// PascalABC.NET 3.1, сборка 1250 от 28.05.2016begin  var a:=ArrRandom(20,-99,99); a.Println;  a:=a.Where(x->x<0).Concat(a.Where(x->x>=0)).ToArray;  a.Printlnend.
    • Автор:

      erin
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years