Предмет: Информатика, автор: buniaevadaria

Помогите пожалуйста, дам 100 баллов! (python)
1. Дан одномерный массив, состоящий из N целочисленных элементов.
Ввести массив с клавиатуры. Найти максимальный элемент.
Вывести массив на экран в обратном порядке.
2. В массиве действительных чисел все нулевые элементы заменить на среднее
арифметическое всех элементов массива.

Ответы

Автор ответа: SheWhoRunsOnTheWaves
2

Ответ:

Задание 1

Способ 1

n = int(input())

a = list(map(int, input().split()))

m = max(a)

a.reverse()

print(m)

print(*a)

Объяснение:

▪︎ Вводим число n - кол-во эл-тов массива (оно конкретно в этом решении не нужно, но скорее всего есть во входных данных к задаче), потом вводим в строку сам массив а.

▪︎ Функция max позволяет найти в списке максимальный эл-т. Записываем результат работы этой ф-ии в переменную m.

▪︎ Метод reverse() разворачивает массив.

▪︎ Выводим сначала максимальный эл-т, потом массив. Чтобы массив выводился аккуратно (условно: 1 2 3 4, а не [1, 2, 3, 4]), ставим символ * перед его именем.

Задание 1

Способ 2

n = int(input())

a = list(map(int, input().split()))

m = 0

for i in range(n):

if a[i] > m:

m = a[i]

print(m)

for i in range(n-1, -1, -1):

print(a[i], end=" ")

Объяснение:

▪︎ Так же считываем кол-во элементов и сам массив.

▪︎ Заводим переменную m.

▪︎ Идем по массиву и каждый раз обновляем m, если встретившийся эл-т больше уже записанного там значения. Под конец в m будет записан максимальный эл-т.

▪︎ Выводим m.

▪︎ Потом идем по массиву с конца и выводим эл-ты (всего n эл-тов, счет с 0, последняч граница не включается в диапазон => идем с n-1 (номер последнего эл-та) до -1 (номер первого 0, последнюю границу не включаем, т.е. до -1) с шагом -1 (назад)).

▪︎ Кстати, в этом способе я не меняю массив а, а просто вывожу его в обратном порядке, тогда как в 1ом способе массив меняется.

Задача 2

Способ 1

a = list(map(float, input().split()))

av = sum(a) / len(a)

for i in range(len(a)):

if a[i] == 0:

a[i] = av

print(a[i], end=" ")

Объяснение:

▪︎ Вводим в строку массив

▪︎ Найдем среднее арифметическое: это сумма всех эл-тов поделить на кол-во эл-тов. Сумму находим с помощью функции sum, а длину массива через len. Записываем результат в переменную av.

▪︎ Идем по массиву и проверяем: если эл-т равен 0, то заменяем его на av. Потом сразу выводим эл-т. end=" " стоит для того, чтобы эл-ты выводились в строку.

Задача 2

Способ 2

a = list(map(float, input().split()))
s = 0
for i in range(len(a)):
s += a[i]
av = s / len(a)
for i in range(len(a)):
if a[i] == 0:
a[i] = av
print(a[i], end=" ")

Объяснение:

Все то же самое, только теперь находим сумму без ф-ции. Для нахождения суммы идем по массиву и прибавляем к переменной s все эл-ты. Потом все абсолютно то же самое.

Удачи, не забудьте про табы.

Приложения:
Похожие вопросы
Предмет: Химия, автор: UnicornPanda