Дан массив из n целых чисел. Определите,
сколько в нем элементов, больших двух своих соседей, и выведите количество
таких элементов. Крайние элементы списка не учитывать, поскольку у них мало
соседей.
Вход. В
первой строке записано число n. В следующей строке записано n целых
чисел. Все числа по модулю не превосходят 100.
Выход. Вывести
количество элементов, которые больше своих двух соседей.
Пример входа |
Пример выхода |
7 9 5 -7 -7 5
-9 -4 |
1 |
массив
Пусть
массив m содержит
входную последовательность чисел. Нумерация элементов массива начинается с 0.
Массив содержит n чисел.
Элемент m[i] имеет двух
соседей, если только 1 ≤ i ≤ n – 1.
Для
подсчета количества элементов, которые
больше своих двух соседей, следует перебрать все такие m[i], что 1 ≤ i
≤ n – 1, и проверить выполнение двух условий: m[i – 1] < m[i] и m[i] > m[i + 1].
Реализация алгоритма
Объявим рабочий массив.
int m[101];
Читаем количество входных чисел n.
scanf("%d",&n);
Читаем входной массив.
for (i = 0; i < n; i++)
scanf("%d", &m[i]);
В
переменной res подсчитываем количество элементов, которые больше своих двух соседей.
res = 0;
Перебираем все такие m[i] что 1 ≤ i
≤ n – 1 и проверяем выполнение двух условий: m[i – 1] < m[i] и m[i] > m[i + 1].
for (i = 1; i < n - 1; i++)
if (m[i] > m[i
- 1] && m[i] > m[i + 1]) res++;
Выводим ответ.
printf("%d\n", res);