Задания для самостоятельного выполнения

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

Требования и ограничения

Количество элементов массива вводить с клавиатуры, массив заполнить случайными числами. Необходимые расчёты и модификации реализовать в виде функций.

Пример

Заполнить массив случайными числами в диапазоне \([-50, 50]\).

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void fill(int n, int a[])
{
    int i;
    for (i = 0; i < n; i++)
        a[i] = rand () % 101 - 50;
}

int main()
{
    srand(time(NULL));
    int n;
    printf("n -> ");
    scanf("%d", &n);
    int A[n];
    fill(n, A);
    int i;
    for (i = 0; i < n; i++)
        printf("%4d", A[i]);
    printf("\n");
    return 0;
}

Результаты работы программы

n -> 5
21 -32 27 -22 29

Варианты заданий

  1. Найти сумму индексов максимального и минимального элемента массива, если она меньше/больше по модулю минимума/максимума соответственно, записать её на их место, иначе обнулить массив между минимум и максимумом.
  2. Максимально эффективно по используемой памяти записать отрицательные и положительные элементы массива в массивы P и N соответственно.
  3. Найти три максимума в массиве и записать разность их произведения и суммы по индексу суммы их индексов по модулю n, где n - количество элементов массива.
  4. Максимально эффективно по используемой памяти сформировать массив из элементов, встречающихся в обоих массивах A и B.
  5. Вычислить сумму и произведение элементов между двумя повторяющимися элементами массива и записать вычисленные значения вместо повторяющихся.
  6. Найти простые элементы массива натуральных чисел. Вывести на экран, если такой элемент один, поменять местами, если их два, иначе - вывести их индексы.
  7. Найти в массиве первое вхождение искомого элемента, а все элементы в частях массива до и после него “перевернуть”, то есть поменять порядок их следования на обратный. Если такого элемента нет, “перевернуть” весь массив.
  8. Найти два подряд идущих элемента в массиве целых чисел, сумма которых максимальна и прибавить эту сумму к двум минимумам этого массива.
  9. Найти два взаимно простых числа в массиве натуральных чисел, вывести на экран и поменять меньшее из них местами с максимумом, а большее - с минимумом. Если таких чисел нет, обнулить минимум и максимум.
  10. Максимально эффективно по используемой памяти сформировать массив из элементов, не встречающихся в массивах A и B одновременно. Диапазон возможных значений элементов \([-19, 20]\).
  11. Обменивать местами два случайных элемента массива, пока все его элементы не будут стоять в порядке возрастания. Вывести количество обменов и итоговый массив. Диапазон возможных значений элементов \([-9, 9]\).
  12. Произвести поиск элементов в массиве, которые сильно отклоняются от среднего значения и внести поправку с результатом ниже среднего, если элемент стоит на нечётном месте, и выше среднего, если на чётном. Величину отклонения вводить с клавиатуры.