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

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

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

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

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;
}
Эта работа вам не подошла?

Вы всегда можете заказать любую учебную работу у наших авторов от 20 руб.

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


СДЕЛАЙТЕ РЕПОСТ