Несколько человек выстроились в очередь. Первой ст...
作成日: 2025年3月4日
作成日: 2025年3月4日
Несколько человек выстроились в очередь. Первой стоит женщина, за ней мужчина, затем снова женщина и т. д. В конце очереди стоит ребёнок.
Есть рост каждого человека в очереди, начиная с первого (женщины). Единственный человек в очереди, чей рост не превосходит 120 см, — это ребёнок.
Надо вывести средний рост мужчин и средний рост женщин.
Обрати внимание — результат может быть дробным числом, поэтому при нахождении среднего надо использовать вещественное деление /.
Надо вывести средний рост мужчин и средний рост женщин. В очереди точно есть хотя бы два человека (не считая ребёнка).
Ввод:
170
180
159
176
169
190
162
119
Вывод:
182.0
165.0
Для решения задачи нужно:
Например, если на вход подаются данные:
text170 180 159 176 169 190 162 119
то очередь (не считая ребёнка) выглядит так:
Шаги решения:
Результат для данного примера:
Итоговый вывод:
text182.0 165.0
Несколько человек выстроились в очередь. Первой стоит женщина, за ней мужчина, затем снова женщина и т. д. В конце очереди стоит ребёнок.
Есть рост каждого человека в очереди, начиная с первого (женщины). Единственный человек в очереди, чей рост не превосходит 120 см, — это ребёнок.
Надо вывести средний рост мужчин и средний рост женщин.
Обрати внимание — результат может быть дробным числом, поэтому при нахождении среднего надо использовать вещественное деление /.
Надо вывести средний рост мужчин и средний рост женщин. В очереди точно есть хотя бы два человека (не считая ребёнка).
Ввод:
170
180
159
176
169
190
162
119
Вывод:
182.0
165.0
напиши программу на python без использования библиотек
Ниже приведён пример решения задачи без использования сторонних библиотек:
pythondef main(): # Считываем все входные данные в список ростов. # Предполагаем, что числа подаются построчно, пока не закончатся. # Можно либо явно задать входные данные, либо считывать до EOF. heights = [] try: while True: h = input().strip() if not h: break heights.append(int(h)) except EOFError: pass # Находим индекс ребёнка — единственного, чей рост не превышает 120. child_index = None for i, h in enumerate(heights): if h <= 120: child_index = i break # Отделяем всех людей до ребёнка (не включая ребёнка) # Первая в списке — женщина, затем мужчина и т.д. queue = heights[:child_index] # Списки (или сразу суммы и счётчики) для мужчин и женщин sum_women = 0 count_women = 0 sum_men = 0 count_men = 0 # По условию: 0-й индекс (с точки зрения Python) — женщина, 1-й — мужчина и т.д. for i, height in enumerate(queue): if i % 2 == 0: # Женщина sum_women += height count_women += 1 else: # Мужчина sum_men += height count_men += 1 # Вычисляем средние значения (вещественное деление) avg_men = sum_men / count_men avg_women = sum_women / count_women # Выводим средний рост мужчин и женщин print(avg_men) print(avg_women) # Если требуется запускать сразу при исполнении скрипта, то можно: # if __name__ == "__main__": # main()
Как работает эта программа:
Чтение входных данных: программа читает из стандартного ввода строки, пока не встретится конец файла (EOF) или пустая строка. Каждое значение преобразуется в целое число и добавляется в список heights
.
Поиск ребёнка: мы находим индекс первого человека, чей рост не превышает 120. Это и есть ребёнок.
Разделение очереди: все элементы до найденного индекса относятся к «взрослым» в очереди, где первый (с точки зрения Python — индекс 0) является женщиной, второй (индекс 1) — мужчиной, третий (индекс 2) — опять женщиной и т.д.
Подсчёт среднего:
Вывод: печатаем средний рост мужчин и средний рост женщин.
Проверка на примере из условия: Входные данные:
text170 180 159 176 169 190 162 119
[0..6]
.Вывод:
text182.0 165.0