Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Программирование python решите задачу

Mupro Ученик (172), открыт 4 недели назад
Как узнать, счастлив ты или это только кажется? Напишите программу, которая просуммирует удачу.

Формат ввода
Вводятся имена нескольких файлов, в которых записаны строки с числами через пробел.

Формат вывода
В файл happiness.txt для каждой строки выведите сумму чисел, меньших общего среднего всех чисел всех файлов. Файлы рассматривать в алфавитном порядке имён.
# Содержимое потока stdin
first.txt
second.txt
third.txt

# Содержимое файла first.txt
13 49 33 23 39 50 19
71 8 74 68 92 25 21 41
11 19 41 63 41 45

# Содержимое файла second.txt
97 92 17 87 61 48 75 14
71 61 93

# Содержимое файла third.txt
62 0 43 41 42 56 15 25
69 87 32 9 22
127
95
157
31
0
166
63
# Содержимое потока stdin
forth.txt
fifth.txt

# Содержимое файла forth.txt
11 70 36 67 85 50 76
8 2 4
16 5 66 78 24
19 99 82 32 72 35

# Содержимое файла fifth.txt
27 99 17 34 95 59 27
87 15 39 97 85
105
54
47
14
45
86
1 ответ
Милан Балмочных Профи (855) 4 недели назад
import sys
import os

def read_numbers_from_file(filename):
with open(filename, 'r') as file:
return [list(map(int, line.split())) for line in file]

def main():
# Чтение имен файлов из стандартного ввода
filenames = sys.stdin.read ().strip().split()

# Сортировка имен файлов в алфавитном порядке
filenames.sort()

all_numbers = []
lines = []

# Чтение чисел из файлов
for filename in filenames:
if os.path.exists(filename):
file_lines = read_numbers_from_file(filename)
lines.extend(file_lines)
for line in file_lines:
all_numbers.extend(line)

# Вычисление общего среднего
if not all_numbers:
average = 0
else:
average = sum(all_numbers) / len(all_numbers)

# Подсчет сумм чисел, меньших общего среднего
results = []
for line in lines:
line_sum = sum(num for num in line if num < average)
results.append(line_sum)

# Запись результатов в файл happiness.txt
with open('happiness.txt', 'w') as output_file:
for result in results:
output_file.write(f"{result}\n")

if __name__ == "__main__":
main()
Похожие вопросы