Помогите пожалуйста, дам 100 баллов! (python)
1. Дан одномерный массив, состоящий из N целочисленных элементов.
Ввести массив с клавиатуры. Найти максимальный элемент.
Вывести массив на экран в обратном порядке.
2. В массиве действительных чисел все нулевые элементы заменить на среднее
арифметическое всех элементов массива.
Answers & Comments
Ответ:
Задание 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 все эл-ты. Потом все абсолютно то же самое.
Удачи, не забудьте про табы.