Вопрос задан 26.07.2026 в 22:36. Предмет Информатика. Спрашивает Асанов Алмат.

Решить на Паскале:
Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить наибольший элемент.

Числа, следующие за числом 0, считывать не нужно.

Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).

Выходные данные
Выведите ответ на задачу.

Перейти к ответам

Ответы на вопрос

Отвечает Андреева Диана.

Нужно хранить два значения:

  • max1 — наибольший элемент последовательности;

  • max2 — второй по величине элемент.

При чтении очередного числа возможны два случая:

  1. Если число больше max1, то прежний максимум становится вторым по величине, а новое число — максимумом.

  2. Если число не больше max1, но больше max2, то оно становится вторым по величине.

Равные элементы учитываются. Например, для последовательности 5 5 3 0 ответом будет 5, потому что после удаления одного наибольшего элемента в последовательности останется ещё одна пятёрка.

program SecondMaximum;

var x, max1, max2: LongInt;

begin max1 := 0; max2 := 0;

Read(x);

while x <> 0 do begin if x > max1 then begin max2 := max1; max1 := x; end else if x > max2 then max2 := x;

Read(x); end;

WriteLn(max2); end.

Так как последовательность состоит из натуральных чисел, начальные значения максимумов можно принять равными нулю.

Сложность алгоритма — O(n), поскольку каждое число рассматривается один раз. Дополнительная память — O(1).

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос