Последовательность состоит из различных натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности.
Числа, следующие за числом 0, считывать не нужно.
Входные данные
Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит).
Выходные данные
Выведите ответ на задачу.
Примеры
входные данные
1
7
9
0
выходные данные
7
паскаль
f: text;
i, j, n, n1: integer;
matrix: array[,] of real;
begin
assign(f, 'informat8.txt');
reset(f);
//найдём количество строк в матрице
while not eof(f) do
begin
readln(f);
inc(n);
end;
writeln('исходная матрица размерности ', n, 'x', n);
//инициализируем массив (размерность узнали выше)
matrix := new real[n, n];
reset(f);
// далее работаем с матрицей размерности [0..n-1] (инициализация происходит, начиная с 0)
for i := 0 to n - 1 do
begin
for j := 0 to n - 1 do
begin
read(f, matrix[i, j]);
write(matrix[i, j]:8:2);
end;
readln(f);
writeln;
end;
writeln;
n1 := 0;
for i := 0 to n - 1 do
for j := 0 to n - 1 do
if matrix[i, j] < 0 then inc(n1);
if n1 > round(n * n / 2) then
begin
writeln('Отрицательных элементов больше половины');
//удваиваем элементы в чётных строках
for i := 0 to n - 1 do
begin
if odd(i) then begin
for j := 0 to n - 1 do
matrix[i, j] := matrix[i, j] * 2;
end;
end;
end else
begin
writeln('Отрицательных элементов меньше половины или ровно половина');
//удваиваем элементы последнего столбца
for i := 0 to n - 1 do
matrix[i, n - 1] := matrix[i, n - 1] * 2;
end;
writeln('результирующая матрица');
for i := 0 to n - 1 do begin
for j := 0 to n - 1 do
write(matrix[i, j]:8:2);
writeln;
end;
end.
Результат работы:
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
begin
Writeln('k=',ArrRandom(15,1,20).Println.Count(x->x>10))
end.
Тестовое решение
4 16 14 9 11 18 17 14 14 15 1 1 9 10 15
k=9
2. А вот так учат решать в школе...
// PascalABC.NET 3.1, сборка 1172 от 19.02.2016
var
a:array[1..15] of integer;
i,k:integer;
begin
Randomize;
k:=0;
for i:=1 to 15 do begin
a[i]:=Random(20)+1;
Write(a[i],' ');
if a[i]>10 then k:=k+1
end;
Writeln;
Writeln('k=',k)
end.
Тестовое решение:
18 15 7 6 3 3 10 6 6 15 2 16 16 2 12
k=6