Дан целочисленный массив из элементов. Элементы массива различны и могут принимать значения от -15000 до 15000. Опишите на одном из языков программирования алгоритм, который находит и выводит количество элементов, которые по модулю больше максимального.
Например, для исходного массива из 6 элементов
4
-5
3
-7
2
-9
программа должна вывести
3
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных. Индексация элементов в массиве начинается с 0.
Найдем максимальный элемент массива. Текущий максимальный элемент будем хранить в . Предположим, что первый элемент является максимальным, то есть
. В цикле
от 0 до
будем сравнивать
и
. Если элемент оказался больше текущего максимума, то мы обновим
(ведь мы нашли новый максимум). После того, как мы выйдем из цикла, в
будет храниться максимальный элемент массива.
Положительные элементы всегда меньше максимума (если максимум — положительное число, то другой положительный элемент будет меньше максимума. Если максимум — это отрицательное число, то среди элементов массива нет положительных или равных нулю чисел). Тогда надо рассматривать только неположительные элементы. Будем сравнивать их по модулю с максимальным (так как, например, -6 по модулю больше, чем 4). Если элемент оказался больше, чем максимальный, то увеличим счетчик таких элементов на 1.
В качестве счетчика будет переменная . Изначально приравняем ее к нулю.
В цикле от 0 до
будем перебирать элементы массива. Так как дополнительные библиотеки подключать нельзя, сравнивать по модулю будем так: если элемент отрицательный, то изменим его знак на противоположный (так элемент станет положительным) и сравним с максимумом. Как уже было сказано, если он оказался больше максимума, увеличим
на 1. Положительные элементы сравнивать не надо. Вне цикла выведем
— количество элементов, которые по модулю больше максимума.
Пример на (с комментариями):
//если элемент оказался отрицательным
//меняем знак на противоположный