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

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

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

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

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

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int large5(int value) {
  4.     return (5 < value);
  5. }
  6.  
  7. size_t rem(int arr[], size_t size, int (*func)(int)) {
  8.     size_t cnt = 0, i, j;
  9.  
  10.     for (i = 0, j = 0; i < size; ++i) {
  11.         if (func(arr[i])) {
  12.             cnt++;
  13.         }
  14.         else {
  15.             arr[j++] = arr[i];
  16.         }
  17.     }
  18.     return cnt;
  19. }
  20.  
  21. int main() {
  22.     int arr[] = {10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1, 10};
  23.     size_t size = sizeof(arr) / sizeof(*arr);
  24.     size_t i = rem(arr, size, large5);
  25.     size -= i;
  26.  
  27.     printf("remove = %u\n", i);
  28.     for (i = 0; i < size; ++i) {
  29.         printf("%u ", arr[i]);
  30.     }
  31.     printf("\n");
  32.  
  33.     return 0;
  34. }

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

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

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


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

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

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы