Bonjour,
j'aimerais un peu d'aide sur une fonction en c que j'essaie de coder,
en gros :
j'ai 4 choix possibles et chaque choix peut être a "0" ou "1"
je dois faire une fonction qui choisit aléatoirement(enfin le plus possible bien-sur) un des choix parmi ceux qui sont a 1
mon idée était de faire un rand() basé sur le time() pour générer un chiffre entre 1 et 4 puis tester si le choix est bien a la valeur "1"
mai problème ! ça ne marche pas!
je pense que la cause est que le rand marche sur la base des seconde et donc que la fonction boucle des centaines de fois(pour une même seconde) avant que le rand() génère un nouveau chiffre
ma solution a été de mettre un délai sleep(1000) et cela marche mai mon programme met parfois plus 30 a utiliser cette fonction lol
j'ai donc besoin d'une autre solution la plus simple possible pour pouvoir optimiser mon code un maximum
merci a vous!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 int choi_position(int a, int b, int c, int d) { int t[4]; int i; t[0]=a;t[1]=b;t[2]=c;t[3]=d; srand(time(NULL)); i=rand()%4; Sleep(1000);//pause obligatoire pour ne pas boucler sur la meme seconde if(t[i]==1) return i+1;//retourne le choix qui est fait ex: 1,2,3,4 else choi_position(a,b,c,d);//boucle si le choix fait n'est au final pas valide }
Partager