Program arr; Const n=3; var i, j, tmp, k, z:integer; c:boolean; a:array [1..n,1..n] of integer;
begin c:=false; for i:=1 to n do for j:=1 to n do read(a[i][j]); for i:=1 to n do for j:=1 to n do begin tmp:=a[i][j]; for k:=i+1 to n do for z:=j+1 to n do if tmp = a[k][z] then c:=true; end; writeln; for i:=1 to n do begin for j:=1 to n do write(a[i][j], ' '); writeln; end; if c = true then writeln('В данном массиве есть равные друг другу элементы') else writeln('Элементы, равные друг другу, отсутсвуют в данном массиве'); end.
В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Const n=3;
var i, j, tmp, k, z:integer;
c:boolean;
a:array [1..n,1..n] of integer;
begin
c:=false;
for i:=1 to n do
for j:=1 to n do
read(a[i][j]);
for i:=1 to n do
for j:=1 to n do
begin
tmp:=a[i][j];
for k:=i+1 to n do
for z:=j+1 to n do
if tmp = a[k][z] then
c:=true;
end;
writeln;
for i:=1 to n do
begin
for j:=1 to n do
write(a[i][j], ' ');
writeln;
end;
if c = true then
writeln('В данном массиве есть равные друг другу элементы')
else writeln('Элементы, равные друг другу, отсутсвуют в данном массиве');
end.
В задаче достаточно держать в памяти два числа: наибольшее и второе по величине – и обновлять эту пару, считывая числа. Если считанное число больше максимального, то оно будет новым максимумом, а бывший максимум станет вторым по величине; если считанное число меньше максимального, но больше второго по величине, то оно становится новым вторым по величине.
Реализация (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