Select Git revision
program-create.component.scss
Forked from
alexandr.vanini / dojo-hepia
Source project has a limited visibility.
unidimensional_array.c 2.29 KiB
/* Author : Dario GENGA
* Date : 15.11.2021
* Description : Manipulate an unidimensional array with dynamic memory allocation
*/
#include "unidimensional_array.h"
#include <stdio.h>
#include <time.h>
size_t ask_array_size() {
size_t array_size = 0;
printf("Size of the array : \n");
scanf("%ld", &array_size);
return 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;
int index2 = rand() % (int)array_size;
swap(&array[index1], &array[index2]);
}
}
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++)
{
array[i] = i;
}
// Then shuffle the array
shuffle_array(array, array_size);
}
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++) {
size_t tmp_index = (i + cycle_number) % array_size;
array_tmp[tmp_index] = array[i];
}
for (size_t i = 0; i < array_size; i++) {
array[i] = array_tmp[i];
}
free(array_tmp);
}
void print_array(int* array, size_t array_size) {
printf("[");
for (size_t i = 0; i < array_size; i++)
{
printf("%d", array[i]);
if (i + 1 < array_size) {
printf(" , ");
}
}
printf("]\n");
}
int find_lowest_value_in_array(int* array, size_t array_size) {
int lowest_value;
for (size_t i = 0; i < array_size; i++) {
if (i == 0) {
lowest_value = array[i];
} else if (array[i] < lowest_value) {
lowest_value = array[i];
}
}
return lowest_value;
}
int find_index_highest_value_in_array(int* array, size_t array_size) {
int highest_value;
size_t index_highest_value = 0;
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;
}
}
return index_highest_value;
}
void swap(int *x, int *y)
{
int tmp = *x;
*x = *y;
*y = tmp;
}