diff --git a/histo.c b/histo.c index 488524e3b93a874808308ad53bdd114c3001a233..1fd0d5db18d6685eff21f54a313ec433875296da 100644 --- a/histo.c +++ b/histo.c @@ -65,6 +65,11 @@ int main() { printf("Result array after multiplication :\n"); print_array(result_mul_array, array_size); + // Convert the first array to an array of double + double *converted_array = convert_int_array_to_double(array, array_size); + printf("Array converted to double :\n"); + print_array_of_double(converted_array, array_size); + // Free the memory free(array); free(second_array); diff --git a/unidimensional_array.c b/unidimensional_array.c index 2ca9b8d9a0cb114c8f2cc3320669c90c8dbb2d82..f56e61a25a7023dd737372a0a45430f04e8d6928 100644 --- a/unidimensional_array.c +++ b/unidimensional_array.c @@ -5,7 +5,6 @@ #include "unidimensional_array.h" #include <stdio.h> -#include <time.h> size_t ask_array_size() { size_t array_size = 0; @@ -14,7 +13,7 @@ size_t ask_array_size() { return array_size; } -void shuffle_array(int* array, size_t array_size) { +void shuffle_array(int *array, size_t array_size) { for (size_t i = 0; i < array_size; i++) { int index1 = rand() % (int)array_size; @@ -23,7 +22,7 @@ void shuffle_array(int* array, size_t array_size) { } } -void fill_array_with_random_values(int* array, size_t array_size) { +void fill_array_with_random_values(int *array, size_t array_size) { // Fill the array with all values from 0 to its size - 1 for (size_t i = 0; i < array_size; i++) { @@ -35,7 +34,7 @@ void fill_array_with_random_values(int* array, size_t array_size) { } -void perform_cyclic_permutation(int* array, size_t array_size, size_t cycle_number) { +void perform_cyclic_permutation(int *array, size_t array_size, size_t cycle_number) { int *array_tmp = malloc(array_size * sizeof(int)); for (size_t i = 0; i < array_size; i++) { @@ -62,7 +61,19 @@ void print_array(int* array, size_t array_size) { printf("]\n"); } -int find_lowest_value_index_in_array(int* array, size_t array_size) { +void print_array_of_double(double *array, size_t array_size) { + printf("["); + for (size_t i = 0; i < array_size; i++) + { + printf("%f", array[i]); + if (i + 1 < array_size) { + printf(" , "); + } + } + printf("]\n"); +} + +int find_lowest_value_index_in_array(int *array, size_t array_size) { int lowest_value; size_t lowest_index; @@ -78,13 +89,13 @@ int find_lowest_value_index_in_array(int* array, size_t array_size) { return lowest_index; } -void permute_lowest_value_with_last_value(int* array, size_t array_size) { +void permute_lowest_value_with_last_value(int *array, size_t array_size) { int lowest_index = (int)find_lowest_value_index_in_array(array, array_size); int last_index = array_size - 1; swap(&array[lowest_index], &array[last_index]); } -void sort_by_insertion_desc(int* array, size_t array_size) { +void sort_by_insertion_desc(int *array, size_t array_size) { size_t i = 1; while (i < array_size) { @@ -97,7 +108,7 @@ 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) { +size_t count_elements_in_array_lower_than_value(int *array, size_t array_size, int value) { size_t total = 0; for (size_t i = 0; i < array_size; i++) @@ -110,18 +121,28 @@ size_t count_elements_in_array_lower_than_value(int* array, size_t array_size, i return total; } -void compute_two_array(int* first_array, int* second_array, int* result_array, size_t array_size) { +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++) { result_array[i] = first_array[i] + second_array[i]; } } -void multiply_array_with_value(int* array, size_t array_size, int* result_array, int value) { +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; } } +double *convert_int_array_to_double(int* array, size_t array_size) { + double *converted_array = malloc(array_size * sizeof(double)); + + for (size_t i = 0; i < array_size; i++) { + converted_array[i] = (double)array[i]; + } + + return converted_array; +} + void swap(int *x, int *y) { int tmp = *x; diff --git a/unidimensional_array.h b/unidimensional_array.h index 14430d55d18930a4f44a8b85399e47352b0f8b30..5ef786b8c39333f506810199699242c436074867 100644 --- a/unidimensional_array.h +++ b/unidimensional_array.h @@ -9,25 +9,29 @@ size_t ask_array_size(); -void fill_array_with_random_values(int* array, size_t array_size); +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_lowest_value_index_in_array(int *array, size_t array_size); -void permute_lowest_value_with_last_value(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); +void shuffle_array(int *array, size_t array_size); -void perform_cyclic_permutation(int* array, size_t array_size, size_t cycle_number); +void perform_cyclic_permutation(int *array, size_t array_size, size_t cycle_number); -void sort_by_insertion_desc(int* array, size_t array_size); +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); +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 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 multiply_array_with_value(int *array, size_t array_size, int *result_array, int value); -void print_array(int* array, size_t array_size); +double *convert_int_array_to_double(int *array, size_t array_size); + +void print_array(int *array, size_t array_size); + +void print_array_of_double(double *array, size_t array_size); void swap(int *x, int *y);