0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 23
1

Переместить в начало все отрицательные элементы списка, сохраняя их порядок

17.06.2017, 20:02. Показов 1586. Ответов 5

Студворк — интернет-сервис помощи студентам
Дан список из n целых чисел a1,a2,.,an. Переместить в начало все отрицательные элементы списка, сохраняя их порядок.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.06.2017, 20:02
Ответы с готовыми решениями:

Переместить все цифры в конец, а остальные символы в начало строки, сохраняя порядок взаимного расположения
Преобразовать строку символов по пaравилу: переместить все цифры в конец, а остальные символы в...

Сдвинуть все отрицательные элементы с в начало массива,сохраняя их порядок между собой, а все положительные элементы
Дан целочисленный список с количеством элементов 2n, не содержащий нулей. Сдвинуть все...

Переставить в массиве все отрицательные элементы в начало массива, сохраняя относительный порядок
Проштудировал весь форум.Решений много взял по примеру написал код, ошибок нет но ответа нужного...

Последовательно переместить все отрицательные элементы списка в его начало, а положительные - в конец
1314 Дан список из n целых чисел a1, a2,..., an. Последовательно переместить все отрицательные...

5
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
17.06.2017, 20:12 2
Вот такой вариант. Может, и лучше было бы вставлять искомые элементы вставлять в начало массива,но мне было лень =))
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var
  a: array of real;
  k: boolean;
 
begin
  
  var n := readinteger('Введите кол-во чисел: ');
  Setlength(a, n);  
  
  k := true;
  for var i := 0 to n - 1 do
  begin
    a[i] := readinteger('Введите ' + (i + 1) + '-й элемент массива: ' );
    if a[i] < 0
      then k := false;
  end;  
  
  if k then writeln('Отрицательных чисел нет')
  else begin
    writeln;
    for var i := 0 to n - 1 do
      if a[i] < 0
        then write(a[i], ' ');
  end;
  
  for var i := 0 to n - 1 do
    if a[i] >= 0
      then write(a[i], ' ');
  
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32580 / 21051 / 8131
Регистрация: 22.10.2011
Сообщений: 36,323
Записей в блоге: 8
17.06.2017, 20:15 3
Список и массив - это разные вещи, если что.
0
129 / 127 / 107
Регистрация: 09.01.2017
Сообщений: 1,651
17.06.2017, 20:19 4
volvo, блин, пропустил, что это список. Прошу прощения =)
0
0 / 0 / 0
Регистрация: 28.12.2016
Сообщений: 23
17.06.2017, 20:31  [ТС] 5
А вы так обрадовали сначала(
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32580 / 21051 / 8131
Регистрация: 22.10.2011
Сообщений: 36,323
Записей в блоге: 8
17.06.2017, 20:40 6
Лучший ответ Сообщение было отмечено glupec как решение

Решение

В принципе, задача решается вот так:
Pascal
1
2
3
4
5
6
begin
  var L := new List<integer>(Arr(1, 2, -3, -9, -5, 8, -11, 4, 9));
  L.Println;
  L := L.OrderBy(v -> Sign(v)).ToList;
  L.Println;
end.
, поскольку OrderBy - стабильная сортировка, она не будет менять местами элементы с одинаковыми характеристиками, и достаточно упорядочить данные по знаку, тогда все отрицательные окажутся спереди, а все положительные - в конце списка.

Но сейчас опять выяснится, что это нужно сделать в стиле Турбо-Паскаля...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.06.2017, 20:40
Помогаю со студенческими работами здесь

Все элементы, не равные нулю, переписать (сохраняя их порядок) в начало, а нулевые элементы – в конец массива
Задан одномерный массив. Все его элементы, не равные нулю, переписать (сохраняя их порядок) в...

Разместить сначала все положительные элементы массива, а затем все отрицательные и нули, сохраняя порядок их следования
Дан массив вещественных чисел, содержащий 20 элементов. Записать в этот же массив сначала все...

Записать сначала все отрицательные элементы, затем нули и положительные элементы, сохраняя порядок следования во второй массив.
Помогите решить 2 задачи 1) Дан массив чисел, содержащий 20 элементов. Записать сначала все...

Сдвинуть все элементы с четными индексами в начало массива, а с нечетными – в конец, сохраняя порядок их следования.
Задан одномерный массив. Сдвинуть все элементы с четными индексами в начало массива, а с нечетными...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru