Bonjour, j'imagine que pour des habitués du C ma requête est évidente, pour moi, c'est du chinois.
J'ai une table composée de 12 éléments,
je tire au hasard dans cette table... jusque là tout va bien!
int table[] = {1,2,3,4,5,6,7,8,9,10,11,12};
int tirage = table[int(random(12))];
Maintenant, je voudrais ne tirer au hasard qu'une fois chaque élément.
ou mettre dans le désordre la liste et prendre chaque élément...
en C i'y a t-il une solution?
Ma première tentative a été de copier la table et de virer l'élément tiré et de recommencer un tirage dans la table plus courte... et ainsi de suite... jusque plus rien...
Mais quand je transmets ma table à ma fonction, elle n'a plus de longueur...
j'utilise sizeof(array)/sizeof(array[0]) pour avoir ma longueur de table...
mais dans ma fonction j'ai rien...
C'est sans doute un pb avec les pointeurs, mais je suis vraiment trop quiche avec ça!
sur le moment je comprends et puis en fait quand j'essaie c'est pas ça...
j'essaie un truc comme ça, pour entrer ma table et la ressortir... mais à l'intérieur de ma fonction, sizeof(array) donne 2 pas 12....
int * foo(int array[]) {
return array;
}
une idée donc pour faire le truc..
peut-être avec une récursive (mais là encore l'exercice intellectuel me démoralise)
merci