[C] Problème nombre aléatoire.

Résolu
cs-bilou Messages postés 836 Statut Membre -  
cs-bilou Messages postés 836 Statut Membre -
Bonjour,
J'ai commencer a apprendre le C depuis 1mois depuis le Site Du zéro.
J'ai fini la Partie II.
Je suis en train de réaliser a un MasterMind.
Mais je bug.
Pour trouver les combinaison aléatoire.
Voila mon code:
    for(i = 0 ; i < 4 ; i++)
    {
          code[i] = codeHasard();
          printf("%ld\n", code[i]);
}

Et

    int codeHasard()
    {
    int max = 8, min = 1, nombreHasard = 0;
    srand(time(NULL));
    nombreHasard = (rand() % (max - min + 1)) + min;
    return nombreHasard;
}


Mais le problème c'est qu'il me met un même nombre dans tout le tableau.
Donc si quelqu'un a une solution.
Merci.

--
Il y a des jours faut pas m'chercher.
Et y'a des jours tous les jours !
Configuration: Tour: Antec Nine Hundred.
Moniteur: LCD 19" HYUNDAI X93W WIDE.
Carte mère: GIGABYTE EP45-DS3.
Processeur: Intel Core Duo E7200.
Carte graphique: GIGABYTE Ati Radeon HD 3870 512MB GDDR3.
RAM: G.SKILL 1024*2 DDR2.
Clavier: Logitech G11.
Souris: Microsoft Laser Mouse 6000.
A voir également:

2 réponses

le père
 
Bonjour

Le problème c'est que tu initialises le générateur de nombre aléatoire à chaque fois avec la même valeur, (car ton programme est très rapide et l'heure n'a pas le temps de changer). La solution c'est de l'initialiser une seule fois
srand(time(NULL));
enlève cette ligne de là où elle est pour la mettre avant le début de ta boucle for
2
cs-bilou Messages postés 836 Statut Membre 164
 
A oki Merci.
Donc en gros je met au début De mon soft, donc un fois. Et non dans la fonction.
Ok merci beaucoup Dark vador (Oui je sais c'est nul comme je de mot.)

Bilou.
0