Эта задача может быть решена следующим образом:
1. Создайте список, в который будут добавляться все числа перед нулем.
2. Создайте список, в который будут добавляться наибольшие три числа из первого списка. Изначально этот список пуст.
3. Пройдитесь циклом по первому списку чисел. Если встречается 0, прервите цикл. Если не 0, добавьте число в первый список.
4. Отсортируйте первый список в порядке убывания.
5. Пройдитесь циклом по первому списку и добавьте первые три числа во второй список.
6. Выведите второй список на экран.
Вот код, который решает эту задачу:
numbers = [] # первый список
top_three = [] # второй список
# заполнение первого списка
while True:
num = int(input("Введите число (введите 0, чтобы закончить ввод): "))
if num == 0:
break
numbers.append(num)
# сортировка первого списка
numbers.sort(reverse=True)
# выбор трех наибольших чисел из первого списка
for i in range(3):
if len(numbers) > i:
top_three.append(numbers[i])
# вывод результата
print("Три наибольших числа: ", top_three)
Пример вывода на экран:
Введите число (введите 0, чтобы закончить ввод): 10
Введите число (введите 0, чтобы закончить ввод): 20
Введите число (введите 0, чтобы закончить ввод): 30
Введите число (введите 0, чтобы закончить ввод): 5
Введите число (введите 0, чтобы закончить ввод): 7
Введите число (введите 0, чтобы закончить ввод): 0
Три наибольших числа: [30, 20, 10]
C/C++
Дано не менее 3-х различных натуральных чисел, за которыми следует 0. Определить 3 наибольших числа в последовательности
Это что, ChatGPT писал? Ну и нагородил...
#include <iostream>
int main(){
int m=0,a=m,b=m,c=m,k; while(std::cin>>k,k)
if(k>a)c=b,b=a,a=k; else if(k>b)c=b,b=k; else if(k>c)c=k;
std::cout<<a<<' '<<b<<' '<<c<<'\n';}
#include <iostream>
int main(){
int m=0,a=m,b=m,c=m,k; while(std::cin>>k,k)
if(k>a)c=b,b=a,a=k; else if(k>b)c=b,b=k; else if(k>c)c=k;
std::cout<<a<<' '<<b<<' '<<c<<'\n';}
Похожие вопросы
- Дана непустая последовательность целых чисел, среди которых есть два нуля. Найти сумму чисел, расположенных между ними.
- Определить k-ю цифру последовательности 182764125216343 … , в которой выписаны подряд кубы натуральных чисел.
- На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Задача по Массивах С++ Дано натуральное число N...
- С++. БЕЗ ИСПОЛЬЗОВАНИЯ АДРЕСОВ И УКАЗАТЕЛЕЙ. Пусть дано натуральное число n и вещественная матрица размером n x 10.
- В языке С.Необходимо определить количество целых чисел из ряда от 1 до 100, которые содержат цифры 3.
- Как записать из набора чисел первое четное и минимальное кратное 3
- C++ Дано натуральное число N. Вычислить
- Заданы натуральное число n и действительные числа a1, a2, …, an. Вычислить
- Из двух чисел с разной четностью вывести на экран нечетное число.
(Д.Киз, "Цветы для Элджернона")