Количество элементов массива, превосходящих по модулю максимальный элемент
Задача
В массиве, состоящем из положительных и отрицательных чисел, определить, сколько элементов превосходят по модулю максимальный элемент.
Решение
Описание переменных:
a - массив;
max - максимальный элемент массива;
count - количество элементов, превосходящих по модулю максимальный.
Алгоритм решения задачи:
Сначала необходимо найти максимальный элемент массива. После чего сравнивать с ним модули элементов массива, и если модуль больше, то увеличивать счетчик количества учитываемых элементов.
Следует отметить, что сравнивать достаточно только модули отрицательных элементов, т.к. среди положительных найденный максимум в любом случае самый большой. Однако для простоты кода проверяются все элементы.
Программа на языке Паскаль:
const N = 20; var a: array[1..N] of integer; max: integer; i, count: byte; begin randomize; max := -16; for i:=1 to N do begin a[i] := random(30)-15; write(a[i],' '); if a[i] > max then max := a[i]; end; writeln; count := 0; for i:=1 to N do if abs(a[i]) > max then count := count + 1; writeln(count); end.
Пример выполнения программы:
1 6 -14 6 12 11 4 -2 -15 -8 7 -8 -5 3 -7 -15 -6 -9 3 1 3
Максимальный элемент здесь - это число 12. Больше него по модулю -14 и два числа -15.