Сжать массив, удалив из него все элементы, величина которых находится в интервале [а, b]. Освободившиеся в конце массива элементы заполнить нулями.

Задачу можно разбить на три подзадачи:

  1. Удаление элементов массива, принадлежащих заданному интервалу.
  2. Сдвиг оставшихся элементов.
  3. Заполнение "освободившейся" части массива нулями.

На самом деле первая и вторая подзадача решаются совместно по следующему алгоритму:

Вычислить сумму модулей элементов массива, расположенных после первого отрицательного элемента.

Например, в массиве [5, 3, -1, 8, 0, -6, 1] первый отрицательный элемент является третьим по счету, а сумма модулей стоящих после него элементов массива будет составлять 8 + 0 + 6 + 1 = 15.

Поиск первого отрицательного:

Сначала находим первый отрицательный элемент и запоминаем его индекс (например, в переменной neg). На случай, если в массиве вообще не будет отрицательных элементов, до цикла поиска присваиваем neg значение, выходящее за границы диапазона индексов данного массива.

В цикле осуществляем проверку элементов на отрицательность. Как только попадается первый такой элемент, его индекс присваивается переменной neg, а цикл следует прервать (с помощью команды break).

Вычисление суммы модулей:

Найти номер минимального по модулю элемента массива.

Например, в массиве [10, -3, -5, 2, 5] минимальным по модулю элементом является число 2. Его номер 4 (в языках, в которых индексация массивов начинается с нуля, его индекс будет равен 3).

Если стоит задача найти минимальный (или максимальный) элемент по модулю, то значит при поиске нужно сравнивать не сами элементы массива, а их абсолютные значения (модули). Большинство языков программирования имеют встроенную функцию (например, abs()), которая возвращают модуль числа.

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

Алгоритм поиска индекса минимального по модулю элемента массива следующий:

Найти положительные элементы главной диагонали квадратной матрицы.

Диагонали выделяют только в том случае, если матрицы квадратные, то есть количество строк равно количеству столбцов. Элементы главной диагонали имеют индексы [1,1], [2,2], ... [N,N] (при условии индексации с единицы).

Поскольку первый индекс равен второму, то, перебирая матрицу в цикле, при обращении к элементам главной диагонали достаточно использовать одну переменную счетчик (например, i): имя_массива[i,i].

Если очередной элемент диагонали больше нуля, то выводим его на экран.

Найти сумму всех цифр целочисленного массива. Например, если дан массив [12, 104, 81], то сумма всех его цифр будет равна 1 + 2 + 1 + 0 + 4 + 8 + 1 = 17.

Каждое элемент-число массива следует разбить на цифры. Сделать это можно с помощью последовательного нахождения остатка от деления числа на 10 нацело, после чего само число делится нацело на десять (чтобы избавиться от последней уже учтенной цифры). Это делается в цикле while до тех пор, пока исходное число не обнулится. Каждую извлеченную цифру следует добавить к переменной, содержащей общую сумму. Ей присваивается нуль до вхождения в цикл перебора элементов массива.

В одномерном массиве найти сумму элементов, находящихся между минимальным и максимальным элементами. Сами минимальный и максимальный элементы в сумму не включать.

  1. Сначала надо найти минимальный и максимальный элементы массива. Это можно сделать в цикле заполнения массива. Причем лучше запоминать в переменных не сами значения элементов, а их индексы.
  2. Поскольку неизвестно, какой из элементов (минимальный или максимальный) встречается в массиве раньше, то неизвестно, как в последующем делать перебор участка массива: от начала этого участка к его концу или от конца к началу.

Дан одномерный массив, состоящий из натуральных чисел. Выполнить сортировку данного массива по возрастанию суммы цифр чисел. Например, дан массив чисел [14, 30, 103]. После сортировки он будет таким: [30, 103, 14], так как сумма цифр числа 30 составляет 3, числа 103 равна 4, числа 14 равна 5.

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

В данной задаче сортировка выполняется методом пузырька. Сумма цифр элементов массива находится с помощью специально написанной функции.

Вывести на экран индексы всех минимальных элементов матрицы.

Задача решается в два этапа. Сначала в матрице ищется минимальный элемент. После этого элементы матрицы сравниваются с ранее найденным минимумом. Если текущий элемент равен минимуму, то его индексы (номера строки и столбца) выводятся на экран.

Написать функцию, которая определяет количество разрядов введенного целого числа.

Чтобы программно посчитать количество разрядов числа, необходимо последовательно его делить нацело на 10, пока это число не станет равным нулю. При этом считать количество делений. Например, дано число 345. После первого деления останется 34, после второго - 3, после третьего - 0. Таким образом, мы видим, что количество делений равно количеству разрядов числа.

Найти среднее арифметическое положительных элементов линейного массива.

Данная задача имеет смысл, если массив заполнен не только положительными числами, но также содержит отрицательные числа и/или возможно нули.

Для заполнения массива можно воспользоваться генератором псевдослучайных чисел. Допустим, надо сгенерировать числа в диапазоне от -5 до 4 включительно. Всего значений 10, смещение на -5. Таким образом, с помощью стандартной функции генерируем числа от 0 до 10 и вычитаем из них 5.