J'ai fais un petit programme qui sort 10 chiffres au hasard entre 0 et 10. Comme je le craignais, les 10 chiffres sont égaux lorsque je lance le programme. Voici le code:
#include <iostream>
using namespace std;
#include <time.h>
int random()
{
int x;
srand(time(0));
x = rand()%10;
return x;
}
int main()
{
for (int x = 0 ; x < 9 ; x++)
{
int nombre;
nombre = random();
cout << nombre << endl;
}
while (1)
{
}
return 0;
}
Que faut-il faire pour avoir des chiffres différents?
Publicité
Posté le 09-06-2001 à 14:30:24
verdoux
And I'm still waiting
Posté le 09-06-2001 à 14:32:31
ne pas utiliser srand dans ta fonction random.
[edit]--Message édité par Verdoux--[/edit]
Alload
Posté le 09-06-2001 à 14:45:04
Si je ne met pas srand(time(0)) j'ai bien plusieurs chiffres différents mais ce sont les mêmes à chaque fois que je lance le programme. Et je souhaiterais avoir tout le temps des chiffres différents...
verdoux
And I'm still waiting
Posté le 09-06-2001 à 14:56:24
Ben tu mets srand dans le main.
Là le srand initialise le générateur de la même façon à chaque fois puisque la granularité de time est la seconde et ton prog dure largement moins que ça.
[edit]--Message édité par Verdoux--[/edit]
Alload
Posté le 09-06-2001 à 15:08:16
Ca marche impec.
Merci
djfm
Posté le 10-06-2001 à 08:12:35
tu linitialises sur le timer si mes souvenirs sont bons
srand(timer);