Шешімі: Среднее двузначных чисел
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое двузначных чисел или сообщает, что таких чисел нет. Программа получает на вход натуральные числа, количество введённых чисел неизвестно, последовательность заканчивается числом 0 (0 — признак окончания ввода, не является членом последовательности).
Количество чисел не превышает 100. Введённые числа не превышают 300.
Программа должна вывести среднее арифметическое двузначных чисел или вывести NO, если таких чисел в последовательности нет.
Пример работы программы:
Входные данные:
13
154
56
0
Выходные данные:
34.5
Входные данные:
269
5
0
Выходные данные:
NO
Шешім по шагам
5 қадамСчитываем очередное число. Если оно равно 0, ввод завершается.
$$n = 0$$Для каждого двузначного числа, то есть числа от 10 до 99 включительно, увеличиваем количество таких чисел и прибавляем число к сумме.
$$10 \leq n \leq 99$$После завершения цикла проверяем, были ли найдены двузначные числа. Если да, выводим отношение суммы к их количеству; иначе выводим NO.
$$\overline{n} = \dfrac{S}{k}$$Один из возможных нұсқа программы на Python:
s = 0
count = 0
n = int(input())
while n != 0:
if 10 <= n <= 99:
s += n
count += 1
n = int(input())
if count > 0:
print(s / count)
else:
print('NO')
Программа должна считать сумму и количество двузначных чисел до ввода 0, затем вывести s / count либо NO при отсутствии таких чисел.
Бұл жауап талдау нәтижесінде алынды, бірақ банктің ресми кілтімен тексерілген жоқ — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Включают число 0 в обработку или проверяют его как двузначное число.
Проверяют только условие n < 100 и ошибочно относят однозначные числа к двузначным.
Не проверяют count перед делением и получают ошибку деления на ноль.
Используют целочисленное деление вместо обычного деления.