В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Реализация (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
<em>// PascalABC.NET 3.3, сборка 1555 от 21.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ArrRandom(ReadInteger('n='),-99,99); a.Println;
var b:=a.Reverse.ToArray; b.Println
end.
<u>Пример</u>
n= 13
7 -43 4 21 -25 62 -33 72 88 -26 -38 42 -64
-64 42 -38 -26 88 72 -33 62 -25 21 4 -43 7
INSERT INTO T2 (Id, Data2, Ciffri2) SELECT Id, SUM (Cifri), Data FROM T1 GROUP BY Data
;
var x: integer;
begin
readln(x);
if (x=0) or (x<0) then
write(0)
else
if (x>1) then
write(x*x)
else
write(x);
end.
Вроде как так, с точками с запятой, надеюсь, не ошиблась.
При х=14 значение 'у' будет 196.