Программа, которая удаляет элементы из целочисленного массива - C (СИ)

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

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

Здравствуйте! Помогите, пожалуйста, написать программу, которая удаляет все элементы, большие 5 из целочисленного массива, и при этом подсчитывает их количество. Заранее благодарен.

Решение задачи: «Программа, которая удаляет элементы из целочисленного массива»

textual
Листинг программы
#include <stdio.h>
 
int large5(int value) {
    return (5 < value);
}
 
size_t rem(int arr[], size_t size, int (*func)(int)) {
    size_t cnt = 0, i, j;
 
    for (i = 0, j = 0; i < size; ++i) {
        if (func(arr[i])) {
            cnt++;
        }
        else {
            arr[j++] = arr[i];
        }
    }
    return cnt;
}
 
int main() {
    int arr[] = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10};
    size_t size = sizeof(arr) / sizeof(*arr);
    size_t i = rem(arr, size, large5);
    size -= i;
 
    printf("remove = %u\n", i);
    for (i = 0; i < size; ++i) {
        printf("%u ", arr[i]);
    }
    printf("\n");
 
    return 0;
}

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

  1. Создается функция large5, которая принимает целочисленный аргумент и возвращает булево значение, используя оператор сравнения <.
  2. Создается функция rem, которая принимает целочисленный массив, его размер и функцию обратного вызова, которая принимает целочисленный аргумент и возвращает булево значение. Функция перемещает элементы массива, используя указанную функцию обратного вызова, и возвращает количество удаленных элементов.
  3. В функции main определяется целочисленный массив arr с 19 элементами.
  4. Размер массива определяется как результат деления размера массива на размер одного элемента, а затем вычитается единица.
  5. Функция rem вызывается для массива arr с указанной функцией обратного вызова large5, и результат сохраняется в переменной i.
  6. Размер массива уменьшается на количество удаленных элементов.
  7. Выводится количество удаленных элементов.
  8. В цикле выводятся оставшиеся элементы массива.

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


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

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

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