From bff60c0d16c68d0dbf0ef215a4124b4439cc05ab Mon Sep 17 00:00:00 2001 From: Orestis <orestis.malaspinas@pm.me> Date: Tue, 28 Sep 2021 22:47:56 +0200 Subject: [PATCH] code is correct now --- examples/tri_selection/tri.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/examples/tri_selection/tri.c b/examples/tri_selection/tri.c index 5bbc7f3..e1feebb 100644 --- a/examples/tri_selection/tri.c +++ b/examples/tri_selection/tri.c @@ -1,26 +1,38 @@ #include <stdio.h> #include <stdlib.h> +#include <time.h> #define SIZE 10 -void find_min(double tab[], int i0, int *ind) { - double min = tab[i0]; - *ind = i0; +void find_min(double tab[], int i0, int *ind, double *min) { + *min = tab[i0]; + *ind = i0; for (int i = i0 + 1; i < SIZE; ++i) { - if (min > tab[i]) { + if (*min > tab[i]) { *ind = i; - min = tab[i]; + *min = tab[i]; } } } int main() { + srand(time(NULL)); double tab[SIZE]; for (int i = 0; i < SIZE; ++i) { tab[i] = rand() / (double)RAND_MAX; } for (int i = 0; i < SIZE - 1; ++i) { - double + double min = tab[i]; + int ind_min = i; + find_min(tab, i, &ind_min, &min); + double tmp = tab[i]; + tab[i] = min; + tab[ind_min] = tmp; } + + for (int i = 0; i < SIZE; ++i) { + printf("%f ", tab[i]); + } + printf("\n"); } -- GitLab