From 6163ed7fa35d9d99cd7a5e80f2500a99b00aea96 Mon Sep 17 00:00:00 2001 From: Dario Genga <dario.genga@etu.hesge.ch> Date: Mon, 15 Nov 2021 21:30:39 +0100 Subject: [PATCH] Add method to compute two array Also removed the method to find the highest value in the array, who is not needed for the exercice. --- histo.c | 17 +++++++++++++---- unidimensional_array.c | 13 ++----------- unidimensional_array.h | 4 ++-- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/histo.c b/histo.c index 13955f9..d540a35 100644 --- a/histo.c +++ b/histo.c @@ -45,12 +45,21 @@ int main() { 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); - swap(&array[index_highest_value], &array[array_size - 1]); + // Create a second array and compute it with the first one to a third array + int *second_array = malloc(array_size * sizeof(int)); + int *result_sum_array = malloc(array_size * sizeof(int)); + fill_array_with_random_values(second_array, array_size); + printf("Second array :\n"); + print_array(second_array, array_size); + compute_two_array(array, second_array, result_sum_array, array_size); + printf("Result array :\n"); + print_array(result_sum_array, array_size); + + // Free the memory free(array); + free(second_array); + free(result_array); return 0; } \ No newline at end of file diff --git a/unidimensional_array.c b/unidimensional_array.c index a70cdaf..0864ef3 100644 --- a/unidimensional_array.c +++ b/unidimensional_array.c @@ -110,19 +110,10 @@ size_t count_elements_in_array_lower_than_value(int* array, size_t array_size, i return total; } -int find_index_highest_value_in_array(int* array, size_t array_size) { - int highest_value; - size_t index_highest_value = 0; - +void compute_two_array(int* first_array, int* second_array, int* result_array, size_t array_size) { for (size_t i = 0; i < array_size; i++) { - if (i == 0) { - highest_value = array[i]; - } else if (array[i] > highest_value) { - highest_value = array[i]; - index_highest_value = i; - } + result_array[i] = first_array[i] + second_array[i]; } - return index_highest_value; } void swap(int *x, int *y) diff --git a/unidimensional_array.h b/unidimensional_array.h index 114b347..f9a7fbe 100644 --- a/unidimensional_array.h +++ b/unidimensional_array.h @@ -13,8 +13,6 @@ void fill_array_with_random_values(int* array, size_t array_size); int find_lowest_value_index_in_array(int* array, size_t array_size); -int find_index_highest_value_in_array(int* array, size_t array_size); - void permute_lowest_value_with_last_value(int* array, size_t array_size); void shuffle_array(int* array, size_t array_size); @@ -25,6 +23,8 @@ 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 compute_two_array(int* first_array, int* second_array, int* result_array, size_t array_size); + void print_array(int* array, size_t array_size); void swap(int *x, int *y); -- GitLab