Дан список чисел. Выведите все элементы списка, которые больше предыдущего элемента. Входные данные Вводится список чисел. Все числа списка находятся на одной строке. Выходные данные Выведите ответ на задачу. Примеры входные данные 1 5 2 4 3 выходные данные 5 4
Ответы
Ответ дал:
0
const n=10;
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.
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.
Ответ дал:
0
Все прекрасно, но в примере входных данных НЕТ операции ввода n !
Ответ дал:
0
Основная "фишка" задачи не в сравнении соседних элементов, а в разборе входной строки.
Ответ дал:
0
Можно и по другому записать readln(s);
var a:=s.ToIntegers;
var n:=a.Length;
for i:=1 to n-1 do
if a[i]>a[i-1] then write(a[i],' ');
var a:=s.ToIntegers;
var n:=a.Length;
for i:=1 to n-1 do
if a[i]>a[i-1] then write(a[i],' ');
Ответ дал:
0
Или так можно записать. var b:=ReadString.ToIntegers;
for var i:=1 to b.Length-1 do
if b[i]>b[i-1] then write(b[i],' '); Упражняться можно долго.
for var i:=1 to b.Length-1 do
if b[i]>b[i-1] then write(b[i],' '); Упражняться можно долго.
Ответ дал:
0
Если Вы "ушли" на возможности PascalABC.NET 3.3 (ToIntegers), какой смысл остальное делать в турбопаскалевском стиле?
Ответ дал:
0
Составим алгоритм отбора чисел, удовлетворяющих условию задания.
В "списке" выделяются пары соседних элементов и в каждой паре проверяется, превышает ли значение второго элемента пары значение первого элемента. Если превышает, второй элемент значение второго элемента передается на выход. Для списка из 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
В "списке" выделяются пары соседних элементов и в каждой паре проверяется, превышает ли значение второго элемента пары значение первого элемента. Если превышает, второй элемент значение второго элемента передается на выход. Для списка из 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
Похожие вопросы
2 года назад
2 года назад
2 года назад
2 года назад
8 лет назад
8 лет назад