Дан список чисел. выведите все элементы списка, которые больше предыдущего элемента. входные данные вводится список чисел. все числа списка находятся на одной строке. выходные данные выведите ответ на . примеры входные данные 1 5 2 4 3 выходные данные 5 4
var a: array[1..n] of integer;
i: integer;
begin
randomize;
writeln('список:');
for i:=1 to n do
begin
a[i]:=random(-20,20);
write(a[i],' ');
end;
writeln;
for i:=2 to n do
if a[i]>a[i-1] then write(a[i]:4);
end.
список:
-20 -20 -14 -18 20 12 -2 -6 -13 15
-14 20 15
Если ввод с клавиатуры:
var a: array of integer;
i,n: integer;
begin
write('n = '); readln(n);
setlength(a,n+1);
for i:=1 to n do read(a[i]);
for i:=2 to n do
if a[i]>a[i-1] then write(a[i],' ');
end.
В "списке" выделяются пары соседних элементов и в каждой паре проверяется, превышает ли значение второго элемента пары значение первого элемента. Если превышает, второй элемент значение второго элемента передается на выход. Для списка из n элементов процесс повторятся n-1 раз.
В условии есть один неприятный момент. Количество элементов в списке нигде не указано. Пока еще, увы, привычный большинству "школьный" паскаль не умеет работать с такими списками, а вот PascalABC.NET 3.3 может, поэтому используем его.
// PascalABC.NET 3.3, сборка 1627 от 27.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
ReadlnString.ToIntegers.Pairwise.Where(t->t[1]>t[0]).Select(t->t[1]).Println
end.
Результат
1 5 2 4 3
5 4