diff --git a/histo.c b/histo.c
index 13955f9844f52592fd669daf4ff042517eba3745..d540a35ca1d49109579ea81c94a636d6ffc6ead6 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 a70cdaf3c1f298c13adca3942d9311e028275497..0864ef3b9ea2743b66f52f4805224e42599582c0 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 114b347002fb19af620e9279a2381140c01b8b94..f9a7fbea8e87c4555fc942a6c65c37905c11c8d8 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);