diff --git a/histo.c b/histo.c
index d540a35ca1d49109579ea81c94a636d6ffc6ead6..488524e3b93a874808308ad53bdd114c3001a233 100644
--- a/histo.c
+++ b/histo.c
@@ -9,6 +9,7 @@ int main() {
     srand(time(NULL));
     size_t cycle_number = 3;
     size_t value = 0;
+    size_t multiply_value = 0;
     // Ask the user the size of the array
     size_t array_size = ask_array_size();
     int *array = malloc(array_size * sizeof(int));
@@ -56,10 +57,19 @@ int main() {
     printf("Result array :\n");
     print_array(result_sum_array, array_size);
 
+    // Create a fourth array that will stock the multiplication between the first array and a value from the user
+    int *result_mul_array = malloc(array_size * sizeof(int));
+    printf("Multiply the first array with the following value : \n");
+    scanf("%ld", &multiply_value);
+    multiply_array_with_value(array, array_size, result_mul_array, multiply_value);
+    printf("Result array after multiplication :\n");
+    print_array(result_mul_array, array_size);
+
     // Free the memory
     free(array);
     free(second_array);
-    free(result_array);
+    free(result_sum_array);
+    free(result_mul_array);
 
     return 0;
 }
\ No newline at end of file
diff --git a/unidimensional_array.c b/unidimensional_array.c
index 0864ef3b9ea2743b66f52f4805224e42599582c0..2ca9b8d9a0cb114c8f2cc3320669c90c8dbb2d82 100644
--- a/unidimensional_array.c
+++ b/unidimensional_array.c
@@ -116,6 +116,12 @@ void compute_two_array(int* first_array, int* second_array, int* result_array, s
     }
 }
 
+void multiply_array_with_value(int* array, size_t array_size, int* result_array, int value) {
+    for (size_t i = 0; i < array_size; i++) {
+        result_array[i] = array[i] * value;
+    }
+}
+
 void swap(int *x, int *y)
 {
     int tmp = *x;
diff --git a/unidimensional_array.h b/unidimensional_array.h
index f9a7fbea8e87c4555fc942a6c65c37905c11c8d8..14430d55d18930a4f44a8b85399e47352b0f8b30 100644
--- a/unidimensional_array.h
+++ b/unidimensional_array.h
@@ -25,6 +25,8 @@ size_t count_elements_in_array_lower_than_value(int* array, size_t array_size, i
 
 void compute_two_array(int* first_array, int* second_array, int* result_array,  size_t array_size);
 
+void multiply_array_with_value(int* array, size_t array_size, int* result_array, int value);
+
 void print_array(int* array, size_t array_size);
 
 void swap(int *x, int *y);