From d5494240e04cd17bef6d7d6828bb6d8224cb2cbe Mon Sep 17 00:00:00 2001 From: Dario Genga <dario.genga@etu.hesge.ch> Date: Mon, 15 Nov 2021 21:01:05 +0100 Subject: [PATCH] Add method to count elements in array This method count the total of elements in the array that are smaler than the specified value. --- histo.c | 7 +++++++ unidimensional_array.c | 13 +++++++++++++ unidimensional_array.h | 2 ++ 3 files changed, 22 insertions(+) diff --git a/histo.c b/histo.c index 849bbde..13955f9 100644 --- a/histo.c +++ b/histo.c @@ -8,6 +8,7 @@ int main() { srand(time(NULL)); size_t cycle_number = 3; + size_t value = 0; // Ask the user the size of the array size_t array_size = ask_array_size(); int *array = malloc(array_size * sizeof(int)); @@ -38,6 +39,12 @@ int main() { sort_by_insertion_desc(array, array_size); printf("Array after insertion desc sort :\n"); print_array(array, array_size); + + // Ask the user a value and then return the total of elements that are smaller + printf("Type a value : \n"); + scanf("%ld", &value); + size_t elements_with_lower_value = count_elements_in_array_lower_than_value(array, array_size, value); + printf("Number of elements with lower value : %ld\n", elements_with_lower_value); // Swap the highest value of the array with the last element of the array size_t index_highest_value = find_index_highest_value_in_array(array, array_size); diff --git a/unidimensional_array.c b/unidimensional_array.c index dbf4bf8..a70cdaf 100644 --- a/unidimensional_array.c +++ b/unidimensional_array.c @@ -97,6 +97,19 @@ void sort_by_insertion_desc(int* array, size_t array_size) { } } +size_t count_elements_in_array_lower_than_value(int* array, size_t array_size, int value) { + size_t total = 0; + + for (size_t i = 0; i < array_size; i++) + { + if (array[i] < value) { + total++; + } + } + + return total; +} + int find_index_highest_value_in_array(int* array, size_t array_size) { int highest_value; size_t index_highest_value = 0; diff --git a/unidimensional_array.h b/unidimensional_array.h index 0e6bb40..114b347 100644 --- a/unidimensional_array.h +++ b/unidimensional_array.h @@ -23,6 +23,8 @@ void perform_cyclic_permutation(int* array, size_t array_size, size_t cycle_numb void sort_by_insertion_desc(int* array, size_t array_size); +size_t count_elements_in_array_lower_than_value(int* array, size_t array_size, int value); + void print_array(int* array, size_t array_size); void swap(int *x, int *y); -- GitLab