Problème avec rand()

Résolu
Messages postés
3
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
23 août 2006
-
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
10
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
Messages postés
3
Date d'inscription
dimanche 28 mars 2004
Statut
Membre
Dernière intervention
23 août 2006

Chouette ma pomme se place aléatoirement maintenant !
Merci beaucoup :)
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

sinon tu peux delimiter ton rand