Pas de dépendances
#include <stdio.h> #include <stdlib.h> #include <time.h> int *tirage(int nombre, int min, int max) { int *tabelems, *ret, i, indice, maxi = max - min; if(min >= max || nombre > maxi + 1 || nombre < 1) return NULL; tabelems = malloc((maxi + 1) * sizeof(int)); ret = malloc(nombre * sizeof(int)); for(i = 0; i < maxi + 1; i++) tabelems[i] = i + min; for(i = 0; i < nombre; i++){ indice = rand() % (maxi + 1); ret[i] = tabelems[indice]; tabelems[indice] = tabelems[maxi]; maxi--; } free(tabelems); return ret; } int main() { int i,j,*tab; int nb = 7; srand(time(NULL)); for(j = 0; j < 10; j++) { if((tab = tirage(nb, 1, 49))) { printf("Tirage %2d :", j + 1); for(i = 0; i < nb; i++) printf(" %d", tab[i]); printf("\n"); free(tab); } } return 0; }
No explanations yet.