0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15

Переставить элементы так, чтобы все положительные стояли в начала массива, а все отрицательные и нули – в конце

16.03.2021, 19:05. Показов 7331. Ответов 6

Студворк — интернет-сервис помощи студентам
Суть программы:

Заполнить массив случайными числами в интервале [-100,100] и переставить элементы так, чтобы все положительные элементы стояли в начала массива, а все отрицательные и нули – в конце. Вычислите количество положительных элементов.
Пример:
Массив:
20 -90 15 -34 10 0
Результат:
20 15 10 -90 -34 0
Количество положительных элементов: 3

Программа готова,НО как сделать чтобы 0 был по середине?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from random import randint
 
n = int(6)
a = [0] * n
for i in range(n):
    a[i] = randint(-100, 100)
print('Массив', a)
 
colvo_chicel = len(a)
chicla_v_conce = 0
i = 0
 
while i < colvo_chicel - chicla_v_conce:
    if a[i] <= 0:
        a.append(a.pop(i))
        chicla_v_conce += 1
        i -= 1
    i += 1
 
print('Результат', a)
print('Количество положительных элементов: ', i)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2021, 19:05
Ответы с готовыми решениями:

Переставить элементы, чтобы все положительные элементы стояли в начале массива, а все отрицательные и нули - в конце
«C»: Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли в начала...

Упорядочить массив, чтобы все положительные элементы стояли в начале, а все отрицательные и нули - в конце
Заполнить массив случайными числами в интервале и переставить элементы так, чтобы все положительные элементы стояли вначале массива, а все...

Переставить элементы массива так, чтобы в начале массива располагались все отрицательные, а в конце - положительные
Дан массив чисел. Переставить элементы массива так, чтобы в начале массива располагались все отрицательные, а в конце массива все ...

6
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:07
Цитата Сообщение от god 2 Посмотреть сообщение
НО как сделать чтобы 0 был по середине?
ну как как - рабить список на 2, в первом положительные, во втором все отрицательные, затем все это собрать в новый список, где сначала закинуть первый список, потом ноль или ноли, потом второй список.
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15
16.03.2021, 19:16  [ТС]
Welemir1, помоги пожалуйста, напиши это всё вместе
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:29
god 2, сойдет?

Python
1
2
3
4
>>> initial = [20, -90, 15, -34, 10, 0]
>>> result = [*list(e for e in initial if e>0),0,*list(e for e in initial if e<0)]
>>> result
[20, 15, 10, 0, -90, -34]
0
0 / 0 / 0
Регистрация: 25.02.2021
Сообщений: 15
16.03.2021, 19:48  [ТС]
Welemir1, так 0 разве в таком случае не всегда будет добавляться? я плохо забираюсь, кому не сложно можете скинуть всю эту программу, но доделанную
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
16.03.2021, 19:49
Лучший ответ Сообщение было отмечено Welemir1 как решение

Решение

Старый джавский хак с компаратором
Python
1
2
3
lst = [20, -90, 15, -34, 10, 0]
lst.sort(key=lambda x: x < 0)
print(lst)
Bash
1
[20, 15, 10, 0, -90, -34]
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
16.03.2021, 19:51
iSmokeJC, да четко!

Цитата Сообщение от god 2 Посмотреть сообщение
так 0 разве в таком случае не всегда будет добавляться?
это я погорячился

Python
1
2
3
4
>>> initial = [20, -90, 15, -34, 10, 0]
>>> result = [*list(e for e in initial if e>0),*list(e for e in initial if e==0),*list(e for e in initial if e<0)]
>>> result
[20, 15, 10, 0, -90, -34]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.03.2021, 19:51
Помогаю со студенческими работами здесь

Переставить элементы массива так, чтобы нули в каждой строке стояли в конце
Такая вот задачка на : 1) Создать массив: 1 0 2 0 0 3 0 4 2 0 3 0 0 4 0 1 2) Переставить элементы...

Переставить числа в массивах так, чтобы в начале оказались все положительные элементы, а в конце отрицательные
Заданы три одномерных масива.Переставиты числа в массивах таким образом, чтобы в начале массивов оказались все положительные элементы, а в...

Переставить элементы массива так, чтобы сначала были расположены все положительные элементы, затем все отрицательные
import numpy as np from array import * from random import randint n = int(input(&quot;Введіть кількість елементів масиву : &quot;)) x =...

Переставить элемента массива, так чтобы сначала было расположены все положительные элементы, потом все отрицательные
Всем добрый вечер! Есть задача: Кто знает как ее решить - помогите, с меня спасибо:)

Массив: переставить элементы таким образом, чтобы сначала были записаны все положительные, затем все отрицательные, а потом все нули.
Здравствуйте! помогите пожалуйста с задачей по информатике. Буду очень благодарна) В массиве из вещественных чисел переставить...


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

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

Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru