Дан массив целых чисел (n=22), заполненный случайным образом числами из промежутка [-12,48]
Вставить * после наименьшего элемента (если таких элементов несколько,
вставить * после каждого).
Удалить все элементы, имеющие наибольшее значение.

gly77oxlysj gly77oxlysj    1   10.11.2021 19:38    25

Ответы
sasharyabukhina sasharyabukhina  23.01.2024 09:01
Хорошо, давайте решим эту задачу шаг за шагом.

Шаг 1: Создание и заполнение массива
Для начала создадим массив целых чисел, состоящий из 22 элементов, и заполним его случайными числами из промежутка [-12, 48].

Пример заполнения массива:
array = [42, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, 48, -7, 0]

Шаг 2: Нахождение наименьшего элемента и вставка *
Теперь нам нужно найти наименьший элемент в массиве и вставить * после него. Если таких элементов несколько, необходимо вставить * после каждого из них.

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

После нахождения минимального значения, пройдем по всем элементам массива и, если элемент равен min_value, вставим * после него.

Пример выполнения этого шага:
array = [42, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, 48, -7, 0]
min_value = array[0] = 42
for i in range(1, len(array)):
if array[i] < min_value:
min_value = array[i]

for i in range(len(array)):
if array[i] == min_value:
array.insert(i+1, "*")

Обновленный массив:
array = [42, *, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, 48, -7, 0]

Шаг 3: Нахождение наибольшего значения и удаление элементов с этим значением
Для выполнения этого шага мы создадим переменную max_value и установим ее равной первому элементу массива. Затем пройдем по всем остальным элементам и проверим, если текущий элемент больше max_value, то заменим значение max_value на значение текущего элемента и продолжим итерацию.

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

Пример выполнения этого шага:
array = [42, *, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, 48, -7, 0]
max_value = array[0] = 42
for i in range(1, len(array)):
if array[i] > max_value:
max_value = array[i]

for i in range(len(array)-1, -1, -1):
if array[i] == max_value:
array.pop(i)

Обновленный массив:
array = [*, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, -7, 0]

Итоговый массив:
array = [*, 18, -9, 10, 27, 7, 30, -3, 35, 14, 5, 20, 39, -2, 12, -6, 24, 33, 17, -7, 0]

Это решение удовлетворяет условиям задачи: были вставлены * после каждого наименьшего элемента, а также были удалены все элементы с наибольшим значением.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика