Дан массив K(n), найти Kmin, и Kmax. Вывести числа в интервале [KMin, KMax], не встречающиеся в массиве K - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан массив целых чисел K(n), найти в нем минимальный Kmin, и максимальный Kmax элементы. Вывести в порядке возрастания все целые числа из интервала (Kmin; Kmax), не встречающихся в исходном массиве.

Решение задачи: «Дан массив K(n), найти Kmin, и Kmax. Вывести числа в интервале [KMin, KMax], не встречающиеся в массиве K»

textual
Листинг программы
#include <cstdio>
#include <cstdlib>
#include <climits>
 
int main()
{
    int n;
    scanf("%d", &n);
 
    // allocate memory for array
    int * a = (int*)malloc(sizeof(int) * n);
 
    int i;
    // input array
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
 
    // output array
    for (i = 0; i < n - 1; i++)
        printf("%d ", a[i]);
    printf("%d\n", a[n - 1]);
 
    // serach kmin, kmax
    int kmin = INT_MAX, kmax = INT_MIN;
    for (i = 0; i < n; i++)
    {
        if (a[i] > kmax)
            kmax = a[i];
        if (a[i] < kmin)
            kmin = a[i];
    }
 
    // output kmin, kmax
    printf("kmin = %d\nkmax = %d\n", kmin, kmax);
 
    int j;
    bool flag;
    // search and output integer numbers on [kmin; kmax] which != array[i]
    for (j = kmin; j <= kmax; j++)
    {
        flag = true;
        for (i = 0; i < n; i++)
            if (a[i] == j)
            {
                flag = false;
                break;
            }
 
        if (flag)
            printf("%d\n", j);
    }
 
    // free memory
    a = (int*)realloc(a, 0); // or free(a);
 
    system("pause");
    return 0;
}

Объяснение кода листинга программы

  1. Включаются необходимые заголовочные файлы
  2. Определяется функция main()
  3. Объявляется переменная n для хранения количества элементов в массиве
  4. С помощью функции scanf() вводится количество элементов в массив
  5. Выделяется память под массив a с помощью функции malloc()
  6. В цикле for с помощью функции scanf() вводятся элементы массива a
  7. В цикле for выводятся элементы массива a, кроме последнего
  8. Вычисляются минимальное и максимальное значение в массиве a
  9. Выводятся значения kmin и kmax
  10. Инициализируются переменные j, flag и начинается поиск целых чисел в интервале [kmin; kmax], которые не встречаются в массиве a
  11. Если число j в интервале [kmin; kmax] не встречается в массиве a, то оно выводится на экран
  12. Освобождается память, выделенная под массив a
  13. Запускается пауза и программа возвращает 0

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы