Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 900 б
- Dwayne_Johnson 870 б
16 мая 2023 22:42
413
Напишите программу, которая в последовательности целых чисел определяет среднее арифметическое положительных и отрицательных чисел. Программа получает на вход целые числа в интервале от -50 до 50, среди которых есть отрицательные и положительные числа. Количество чисел вводится с клавиатуры не превышает 1000. Программа должна вывести одно число: среднее арифметическое положительных и отрицательных чисел с точностью до одного знака после запятой. Если либо положительных, либо отрицательных чисел в последовательности нет, то программа должна вывести одно слово NO.
1
ответ
Вот код программы на Python:
```python
n = int(input()) # количество чисел в последовательности
sum_pos = 0 # сумма положительных чисел
count_pos = 0 # количество положительных чисел
sum_neg = 0 # сумма отрицательных чисел
count_neg = 0 # количество отрицательных чисел
for i in range(n):
num = int(input())
if num > 0:
sum_pos += num
count_pos += 1
elif num < 0:
sum_neg += num
count_neg += 1
if count_pos == 0 and count_neg == 0:
print("NO")
else:
avg_pos = sum_pos / count_pos if count_pos > 0 else 0
avg_neg = sum_neg / count_neg if count_neg > 0 else 0
avg = (avg_pos + avg_neg) / 2
print("{:.1f}".format(avg))
```
Сначала программа считывает количество чисел в последовательности `n`. Затем она инициализирует переменные `sum_pos`, `count_pos`, `sum_neg` и `count_neg` нулями. `sum_pos` и `count_pos` будут использоваться для подсчета суммы и количества положительных чисел соответственно, а `sum_neg` и `count_neg` - для отрицательных чисел.
Затем программа в цикле `for` считывает каждое число из последовательности и проверяет, является ли оно положительным или отрицательным. Если число положительное, то программа добавляет его к сумме `sum_pos` и увеличивает счетчик `count_pos` на 1. Если число отрицательное, то программа добавляет его к сумме `sum_neg` и увеличивает счетчик `count_neg` на 1.
После того, как программа завершит цикл `for`, она проверяет, есть ли в последовательности положительные или отрицательные числа. Если нет, то программа выводит слово NO. В противном случае программа вычисляет среднее арифметическое для положительных чисел и отрицательных чисел, если они есть, и затем вычисляет среднее арифметическое для обоих значений. Окончательный результат выводится с точностью до одного знака после запятой с помощью метода `format()`.
```python
n = int(input()) # количество чисел в последовательности
sum_pos = 0 # сумма положительных чисел
count_pos = 0 # количество положительных чисел
sum_neg = 0 # сумма отрицательных чисел
count_neg = 0 # количество отрицательных чисел
for i in range(n):
num = int(input())
if num > 0:
sum_pos += num
count_pos += 1
elif num < 0:
sum_neg += num
count_neg += 1
if count_pos == 0 and count_neg == 0:
print("NO")
else:
avg_pos = sum_pos / count_pos if count_pos > 0 else 0
avg_neg = sum_neg / count_neg if count_neg > 0 else 0
avg = (avg_pos + avg_neg) / 2
print("{:.1f}".format(avg))
```
Сначала программа считывает количество чисел в последовательности `n`. Затем она инициализирует переменные `sum_pos`, `count_pos`, `sum_neg` и `count_neg` нулями. `sum_pos` и `count_pos` будут использоваться для подсчета суммы и количества положительных чисел соответственно, а `sum_neg` и `count_neg` - для отрицательных чисел.
Затем программа в цикле `for` считывает каждое число из последовательности и проверяет, является ли оно положительным или отрицательным. Если число положительное, то программа добавляет его к сумме `sum_pos` и увеличивает счетчик `count_pos` на 1. Если число отрицательное, то программа добавляет его к сумме `sum_neg` и увеличивает счетчик `count_neg` на 1.
После того, как программа завершит цикл `for`, она проверяет, есть ли в последовательности положительные или отрицательные числа. Если нет, то программа выводит слово NO. В противном случае программа вычисляет среднее арифметическое для положительных чисел и отрицательных чисел, если они есть, и затем вычисляет среднее арифметическое для обоих значений. Окончательный результат выводится с точностью до одного знака после запятой с помощью метода `format()`.
0
·
Хороший ответ
16 мая 2023 22:45
Остались вопросы?
Еще вопросы по категории Информатика
Одна минута записи стереоаудиофайла занимает на диске 3,7 мб.Частота дискретизации 32 кГц.Какова разрядность звуковой платы?...
Какие документы называют гипертекстовыми??...
Срочно, помогите, пожалуйста. 3. Значение выражения 2410+11012 в двоичной системе счисления равно: 1) 110001 2) 100001 3) 100101 4) 11101...
Чему равно значение с после выполнения программы? a=4 b=5 b+=2 c=a+b...
Составьте программу сортировки по возрастанию значений трех переменных: А, В, С. Продемонстрируйте данный алгоритм в виде БЛОК-СХЕМЫ....