Les nombres aléatoires en C++ (Visual C++ 6.0)

Signaler
Messages postés
3
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
1 février 2003
-
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003
-
Tout d'abord voilà le code :

CODE

#include
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

using namespace std;

void animstartscreen()
{

int nombredemo1;
int nombredemo2;
int nombredemo3;

cout << "\n\n\n\n";
srand((unsigned) time(NULL));
nombredemo1 = rand() % 11;
cout << "\t\t\t" << nombredemo1;

srand((unsigned) time(NULL));
nombredemo2 = rand() % 11;
cout << "\t" << nombredemo2;

srand((unsigned) time(NULL));
nombredemo3 = rand() % 11;
cout << "\t" << nombredemo3 << "\n\n\n";
}

int main()
{
animstartscreen();
return 0;
}


Bon le problème que j'ai avec ce code c'est qu'il génère 3 chiffres aléatoires certes mais ce sont les mêmes.
Il va me générer 3 fois le nombre "3" par exemple

Quelqu'un à une idée de comment faire pour qu'il génère 3 nombres aléatoires différents?

(je prog sur Visual C++ 6.0 là, ca fait des touches pour le concour dolphin )

Thx all

7 réponses

Messages postés
42
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
16 mai 2003

> #include
> #include <stdio.h>
> #include <stdlib.h>
> #include <time.h>
>
> using namespace std;
>
>
> void animstartscreen()
> {
>
> int nombredemo1;
> int nombredemo2;
> int nombredemo3;
>
> cout << "\n\n\n\n";
> srand((unsigned) time(NULL));
> nombredemo1 = rand() % 11;
> cout << "\t\t\t" << nombredemo1;
>
> srand((unsigned) time(NULL));
> nombredemo2 = rand() % 11;
> cout << "\t" << nombredemo2;
>
> srand((unsigned) time(NULL));
> nombredemo3 = rand() % 11;
> cout << "\t" << nombredemo3 << "\n\n\n";
> }
>
>
> int main()
> {
> animstartscreen();
> return 0;
}

Tu ne dois pas reinitializer rand() avant chaque appel. la difference vient exactement du different temps d'appel, et la il est quasiment constant.
Filter
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,
srand((unsigned) time(NULL)); ne le mettre qu'une fois
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

filter je ne pense pas que c'est rand() qui pose problème mais srand(...)
Messages postés
42
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
16 mai 2003

> filter je ne pense pas que c'est rand() qui pose problème mais
>>srand(...)

Et malheureusement c exactement ce que j'ai ecrit.
Srand sert a initializer rand tu te souviens?????
Alors on peut "traduire"

>>Tu ne dois pas reinitializer rand() avant chaque appel.

comme

>> N'utilise srand s'une seule fois au debut.

Ca te vas???????
--
Filter
Messages postés
3
Date d'inscription
samedi 11 janvier 2003
Statut
Membre
Dernière intervention
1 février 2003

Ok merci en utilisant srand() qu'une seule fois ca généère 3 nombres aléatoires différents en même temps. Maintenant dans mon prog j'ai un autre problème. Je voudrais que les 3 nombres aléatoires générés s'affichent toujours au même endroit. Je m'explique : avec la commande cout , ca rajoute une ligne en dessous, je voudrais que les 3 variables s'écrivent sur la même ligne à l'emplacement des 3 autres. C'est possible ?Ca donnerait :

do
{
srand etc ...
cout << a << b << c;
} while (1);

La ca me fait des lignes et des lignes à la sortie :(

Autre question, c'est normal que je ne puisse pas utiliser graphics.h avec Visual C++ 6.0 ? (j'ai téléchargé la bibliothèque mais il ne veut pas l'utiliser :( )
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

normalement on utilise gotoxy mais il me semble que cette instruction n'existe pas dans VC++6 ceci dit quelqu'un a résolu le problème en faisant une fonction analogue

si tu fais do ... while (1); il n'y a pas de condition de fin donc cette boucle est infinie (c'est riqué)

graphics.h est une librairie de borland c'est incomptatible, il doit y avoir une librairie spécifique dans VC++6
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

c'est de GoldenEye (econio.h)
http://www.cppfrance.com/article.aspx?Val=200