В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Реализация (python 3):
max, max2 = int(input()), int(input())
if max2 > max:
max, max2 = max2, max
while True:
t = int(input())
if t == 0: break
if t > max:
max, max2 = t, max
elif t > max2:
max2 = t
print(max2)
Пример ввода:
5
1
3
2
4
0
Пример вывода:
4
var
nm,snm:array of string;
age:array of integer;
k,s:integer;
begin
write('Введите общее кол-во студентов - '); readln(k);
setLength(nm,k); setLength(snm,k); setLength(age,k);
for var i1:=0 to k-1 do begin
writeln('[Студент ',i1+1,']');
write('Имя - '); readln(nm[i1]);
write('Фамилия - '); readln(snm[i1]);
write('Возраст - '); readln(age[i1]);
end;
for var i2:=0 to k-1 do
if age[i2]<16 then s:=s+1;
writeln; writeln('Кол-во студентов которым меньше 16 лет = ',s,' человек:');
for var i2:=0 to k-1 do begin
if age[i2]<16 then writeln(nm[i2],' ',snm[i2],' ',age[i2],' лет');
end;
end.