Пользователь вводит n элементов массива. Требуется определить количество элементов, значение которых больше, чем у соседних элементов массива.
m - количество реальных элементов массива;
qty - количество элементов массива, значение которых больше, чем у соседей.
arr[i]) больше предшествующего (arr[i-1]) и очередной элемент массива (arr[i]) больше последующего (arr[i+1]), то ...i := i + 1).Это не оптимальный алгоритм, но короткий.
const n = 100; var arr: array[1..n] of integer; i, m, qty: byte; begin write('Количество элементов массива: '); readln(m); write('Элементы массива через пробел: '); for i:=1 to m do read(arr[i]); readln; qty := 0; i := 2; while i do if (arr[i] > arr[i-1]) and (arr[i] > arr[i+1]) then begin qty := qty + 1; i := i + 2 end else i := i + 1; writeln('Кол-во элементов, которые больше соседей: ', qty); readln; end.
Пример выполнения программы:
Количество элементов массива: 6 Элементы массива через пробел: 3 4 2 3 7 6 Количество элементов, которые больше соседей: 2
Получается 2, т.к. только четверка и семерка больше обоих своих соседей.