М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
неумно
неумно
15.01.2021 03:34 •  Информатика

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

👇
Ответ:
// PascalABC.NET 3.3, сборка 1634 от 14.02.2018
// Внимание! Если программа не работает, обновите версию!

begin
  var a:=ArrRandom(ReadInteger('n='),-100,100); a.Println;
  a:=(a.Where(t->t>0)+a.Where(t->t<=0)).ToArray; a.Println
end.

Пример
n= 19
-84 -71 -76 -36 69 15 -64 12 60 -11 75 31 -42 19 66 78 -46 19 44
69 15 12 60 75 31 19 66 78 19 44 -84 -71 -76 -36 -64 -11 -42 -46
4,4(58 оценок)
Ответ:
Хорошо, я представлю себя в роли школьного учителя и объясню, как решить данную задачу.

Для начала, нам понадобится создать массив и заполнить его случайными числами в интервале [-100,100]. Для этого используем функцию randint() из библиотеки random.

В питоне код будет выглядеть так:

```python
import random

# задаем размер массива
n = 10

# создаем пустой массив
arr = []

# заполняем массив случайными числами
for i in range(n):
arr.append(random.randint(-100, 100))

print("Исходный массив:", arr)
```

Теперь, чтобы переставить элементы так, чтобы все положительные элементы стояли в начале, а все отрицательные и нули – в конце, мы можем использовать два указателя - один в начале массива, другой в конце. Оба указателя будут сдвигаться внутрь массива и меняться местами, если встретится нужная пара элементов. Когда указатели пересекутся, мы закончим процесс перестановки.

Давайте реализуем это:

```python
# инициализируем указатели
left = 0
right = n - 1

# пока указатели не пересеклись, выполняем перестановку
while left < right:
# если элемент в начале массива отрицательный или ноль
if arr[left] <= 0:
# находим элемент в конце массива, который больше 0
while arr[right] <= 0 and left < right:
right -= 1
# меняем местами элементы
arr[left], arr[right] = arr[right], arr[left]
# передвигаем указатели
left += 1
right -= 1

print("Переставленный массив:", arr)
```

Теперь осталось только посчитать количество положительных элементов в переставленном массиве. Для этого мы проходимся по всем элементам массива и увеличиваем счетчик, если элемент больше нуля:

```python
# инициализируем переменную-счетчик
positive_count = 0

# считаем количество положительных элементов
for i in range(n):
if arr[i] > 0:
positive_count += 1

print("Количество положительных элементов:", positive_count)
```

Итоговый код будет выглядеть так:

```python
import random

# задаем размер массива
n = 10

# создаем пустой массив
arr = []

# заполняем массив случайными числами
for i in range(n):
arr.append(random.randint(-100, 100))

print("Исходный массив:", arr)

# инициализируем указатели
left = 0
right = n - 1

# пока указатели не пересеклись, выполняем перестановку
while left < right:
# если элемент в начале массива отрицательный или ноль
if arr[left] <= 0:
# находим элемент в конце массива, который больше 0
while arr[right] <= 0 and left < right:
right -= 1
# меняем местами элементы
arr[left], arr[right] = arr[right], arr[left]
# передвигаем указатели
left += 1
right -= 1

print("Переставленный массив:", arr)

# инициализируем переменную-счетчик
positive_count = 0

# считаем количество положительных элементов
for i in range(n):
if arr[i] > 0:
positive_count += 1

print("Количество положительных элементов:", positive_count)
```

Теперь, если запустить данный код, мы получим исходный массив, переставленный массив и количество положительных элементов в нем.

Надеюсь, ответ был понятен и полезен для вас! Если остались какие-либо вопросы, пожалуйста, не стесняйтесь задавать их.
4,6(38 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ