Напишите программу, которая вычисляет сумму двух наибольших чисел и сумму двух наименьших чисел в последовательности

  • 57
Напишите программу, которая вычисляет сумму двух наибольших чисел и сумму двух наименьших чисел в последовательности целых чисел. Программа должна вывести эти суммы по порядку. Входные данные для программы - целые числа, количество которых неизвестно. Последовательность чисел заканчивается числом 0, которое не входит в последовательность. Количество чисел не превышает 1000. Абсолютное значение введенных чисел не превышает 30 000. В последовательности находятся как минимум два числа.
Загадочный_Песок_2891
68
Шаг 1: Понимание задачи
Перед тем, как написать программу, давайте разберемся в условии задачи. Нам нужно написать программу, которая будет принимать последовательность целых чисел и находить сумму двух наибольших чисел и сумму двух наименьших чисел в данной последовательности. Мы также знаем, что в последовательности будет как минимум два числа и что последовательность завершается числом 0, которое не входит в последовательность.

Шаг 2: План решения
Наши входные данные представляют собой последовательность чисел, поэтому мы можем использовать цикл для обработки каждого числа последовательности. Мы также должны хранить два наибольших и два наименьших числа, чтобы вычислить суммы. Вот наш план решения:

1. Инициализируем переменные для двух наибольших чисел (max1 и max2) значениями минус бесконечность и переменные для двух наименьших чисел (min1 и min2) значениями плюс бесконечность.
2. Запускаем цикл, который будет выполняться до тех пор, пока пользователь не введет число 0.
3. Внутри цикла проверяем каждое введенное число.
1. Если число больше max1, присваиваем max2 значение max1, а max1 - значение введенного числа.
2. Если число между max1 и max2, присваиваем max2 значение введенного числа.
3. Если число меньше min1, присваиваем min2 значение min1, а min1 - значение введенного числа.
4. Если число между min1 и min2, присваиваем min2 значение введенного числа.
4. Вычисляем суммы для наибольших и наименьших чисел (sumMax и sumMin).
5. Выводим суммы на экран.

Шаг 3: Написание программы
Используя наш план решения, напишем программу на языке Python:

python
max1 = float("-inf")
max2 = float("-inf")
min1 = float("inf")
min2 = float("inf")

# Ввод чисел и поиск наибольших/наименьших
while True:
num = int(input("Введите число (для окончания введите 0): "))
if num == 0:
break

if num > max1:
max2 = max1
max1 = num
elif num > max2:
max2 = num

if num < min1:
min2 = min1
min1 = num
elif num < min2:
min2 = num

sumMax = max1 + max2
sumMin = min1 + min2

print("Сумма двух наибольших чисел:", sumMax)
print("Сумма двух наименьших чисел:", sumMin)


Шаг 4: Объяснение программы
Наша программа начинается с инициализации переменных для наибольших (max1 и max2) и наименьших (min1 и min2) чисел. Мы используем значения минус и плюс бесконечность, чтобы гарантировать, что первые введенные числа будут назначены наибольшим и наименьшим значениям.

Затем мы запускаем цикл while, который будет выполняться до тех пор, пока пользователь не введет число 0. Внутри цикла мы проверяем каждое введенное число и обновляем значения наибольших и наименьших чисел, если текущее число соответствует определенным условиям.

После того, как цикл завершится, мы вычисляем суммы двух наибольших и двух наименьших чисел и выводим их на экран.

Шаг 5: Тестирование программы
Давайте протестируем нашу программу на нескольких входных данных.

Пример 1:

Введите число (для окончания введите 0): 5
Введите число (для окончания введите 0): 10
Введите число (для окончания введите 0): -2
Введите число (для окончания введите 0): 7
Введите число (для окончания введите 0): 0
Сумма двух наибольших чисел: 17
Сумма двух наименьших чисел: 3


Пример 2:

Введите число (для окончания введите 0): 15
Введите число (для окончания введите 0): 10
Введите число (для окончания введите 0): 20
Введите число (для окончания введите 0): 5
Введите число (для окончания введите 0): 0
Сумма двух наибольших чисел: 35
Сумма двух наименьших чисел: 15


Шаг 6: Заключение
Мы успешно написали программу, которая вычисляет суммы двух наибольших чисел и двух наименьших чисел в заданной последовательности. Программа работает как ожидается и может быть использована для решения данной задачи.