1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
// process each element in the array using int_mapper
void mutate_int_array(int* array, int size,
int (*int_mapper)(int)) {
for(int i = 0; i < size; i++) {
array[i] = int_mapper(array[i]);
}
}
int add_five(int n) {
return n + 5;
}
int multiply_by_three(int n) {
return n * 3;
}
void print_int_array(int const* array, int size) {
printf("[");
for(int i = 0; i < size; i++) {
printf("%d, ", array[i]);
}
printf("]\n");
}
int main(int argc, char* argv[]) {
int numbers[5] = {1, 2, 3, 4, 5};
print_int_array(numbers, 5);
mutate_int_array(numbers, 5, add_five);
print_int_array(numbers, 5);
mutate_int_array(numbers, 5, multiply_by_three);
print_int_array(numbers, 5);
return EXIT_SUCCESS;
}
/* vim: set tabstop=4 shiftwidth=4 fileencoding=utf-8 noexpandtab: */
|
© Copyright 2022 Alexander J. Quinn This content is protected and may not be shared, uploaded, or distributed.