Problème avec rand()

Résolu
ganner Messages postés 3 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 23 août 2006 - 23 août 2006 à 16:40
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011 - 24 août 2006 à 11:24
Bonsoir

J'utilise cette boucle dans mon programme pour pouvoir obtenir un nombre aléatoire:

while (nbRand < 200 || nbRand > 400)
    {
        nbRand = rand();
        fprintf(stderr, "\n %d", nbRand);
    }

Mais quand je regarde dans le fichier, la fonction rand me renvoie toujours la même série de chiffre (jusqu'a ce que la condition sois vérifié).

Voilà la liste de nombre que j'obtiens:
  41
 18467
 6334
 26500
 19169
 15724
 11478
 29358
 26962
 24464
 5705
 28145
 23281
 16827
 9961
 491
 2995
 11942
 4827
 5436
 32391
 14604
 3902
 153
 292

Je voudrais savoir comment je peux générer un nombre aléatoire chaque fois que je passe sur la boucle. J'en ai besoin pour placer une pomme.

Merci

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
23 août 2006 à 16:42
Il faut initialiser le générateur, avec srand. En général on le fait avec l'heure actuelle, qui est toujours différente:
srand(time(0));
Une seule fois, au début du programme

_____________________________________
Un éditeur de ressources gratuit pour Windows
3
ganner Messages postés 3 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 16:48
Chouette ma pomme se place aléatoirement maintenant !
Merci beaucoup :)
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
24 août 2006 à 11:24
sinon tu peux delimiter ton rand
0
Rejoignez-nous