Лучшие помощники
- Megamozg 2205 б
- Matalya1 1800 б
- DevAdmin 1720 б
- arkasha_bortnikov 895 б
- Dwayne_Johnson 865 б
16 мая 2023 22:42
308
Напишите программу, которая в последовательности целых чисел определяет среднее арифметическое положительных и отрицательных чисел. Программа получает на вход целые числа в интервале от -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
Остались вопросы?
Еще вопросы по категории Информатика
1) Что такое кривая Безье? 2)какие режимы построения кривых? 3) Можно ли заменить направление рисунков, нарисованных кривыми линиями? 4) в какие сто...
паскаль прошу очень важно)Напишите программу, которая в последовательности натуральных чисел определяет максимальное число, кратное 4. Программа получ...
Нет индексного свойства по умолчанию для типа integer исправьте пожалуйста program max; var ar:array[1..10]of integer; a,c,i,n:integer; begin for...
Музыкальный фрагмент был оцифрован и записан в виде файла без использования сжатия данных. Получившийся файл был передан в город А по каналу связи. За...
16:35 3 7 из 7 22:36 Выполни вычисления по блок-схеме для чисел 20 и 13. Начало Да Нет чётное Результат Конец Сдать учителю Skysmart Клас...