From 3b703fb89a48ae32ab00eb301846f506f9550496 Mon Sep 17 00:00:00 2001
From: Dario Genga <dario.genga@etu.hesge.ch>
Date: Mon, 15 Nov 2021 21:44:48 +0100
Subject: [PATCH] Add method to multiply an array with a value

The value is given by the user.
---
 histo.c                | 12 +++++++++++-
 unidimensional_array.c |  6 ++++++
 unidimensional_array.h |  2 ++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/histo.c b/histo.c
index d540a35..488524e 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 0864ef3..2ca9b8d 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 f9a7fbe..14430d5 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);
-- 
GitLab