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