Определить количество элементов массива, значение которых больше соседних элементов

Рейтинг:   / 1
ПлохоОтлично 

Определить количество элементов массива, значение которых больше соседних элементов

Задача:

Пользователь вводит n элементов массива. Требуется определить количество элементов, значение которых больше, чем у соседних элементов массива.

Описание переменных:

m - количество реальных элементов массива;

qty - количество элементов массива, значение которых больше, чем у соседей.

Алгоритм решения задачи:

Считываем числа с помощью процедуры read() и помещаем их в массив.

Переменной qty присваиваем значение 0.

Переменной i, которая обозначает индекс массива, присваиваем значение 2, т.к проверять первый элемент массива не имеет смысла (у него нет левого соседа).

В условии цикла выражение i < m говорит о том, что последний элемент массива также не проверяется, т.к. у него нет правого соседа.

Если очередной элемент массива (arr[i]) больше предшествующего (arr[i-1]) и очередной элемент массива (arr[i]) больше последующего (arr[i+1]), то ...

... увеличить значение qty на единицу и ...

... увеличить значение i на 2, т.к проверять следующий элемент нет смысла, т.к. уже известно, что он меньше левого соседа.

Иначе (если условие не выполнилось) перейти к следующему элементу массива (i := i + 1).

Вывести значение qty на экран.

Это не оптимальный алгоритм, но короткий.

Программа на языке Паскаль:

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 < m 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, т.к. только четверка и семерка больше обоих своих соседей.

Критические заметки

Здесь представлены комментарии некоторых спортивных состязаний, а также оценка вопросов, сыгранных в телевизионных клубах "Что? Где? Когда?" России и Беларуси.  Особое внимание будет уделено игровым видам спорта (футбол, хоккей). Найдут для себя полезное и любители шахмат и шахматной композиции. 

Читать

Лучшие книги

Здесь представлены лучшие, на наш взгляд, книги по математике, физике, астрономии, информатике, и некоторым другим предметам. Также предлагается подборка научно-популярной литературы и книг по интеллектуальным играм. Здесь указаны ссылки, по которым Вы можете их скачать.

Перейти к книгам