Question sur rand()

Sharon71 Messages postés 20 Statut Membre -  
deltapro Messages postés 109 Statut Membre -
Bonjour,

Je dois faire un programme qui génère des nombres aléatoires x et y compris entre [0 ; 1].
Voici un petit bout de mon programme :
srand(l) ;
for(i=1; i<=n ; i++)
{ x=((float)rand()/RAND_MAX) ;
y=((float)rand()/RAND_MAX) ; }
J'aimerai savoir si avec ce que j'ai fait, x et y prendront chacun des valeurs différentes.

Merci beaucoup d'avance pour vos réponses

4 réponses

fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Le mieux est de tester pour savoir ;-))).
Sinon, oui cela prendra des valeurs différentes pour chaque itération. Mais, cela sera les mêmes valeurs à chaque lancement de programme puisque tu utilises srand(l) (enfin tout dépend de ce que tu as mis dans l).
Utilise plutôt : srand(time(NULL));
Cdlt
0
Sharon71 Messages postés 20 Statut Membre
 
Merci beaucoup pour ta réponse.
Je me suis enfin décidée à installer microsoft visual c++ express, comme ça j'ai pu tester.
C'est vrai que c'est beaucoup mieux d'utiliser srand(time(NULL)), mais c'est écrit dans l'énoncé qu'on doit utiliser srand(I).
J'ai une autre question pas du tout en rapport avec ça : si on utilise double, que doit-on mettre après % dans scanf et printf ? Merci
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,

double a;
scanf("%lf",&a);
printf("%f",a);

Cdlt
0
Sharon71 Messages postés 20 Statut Membre
 
Merci beaucoup
0
deltapro Messages postés 109 Statut Membre 33
 
salut,
Pour compléter ce que disait fiddy utilise "%g" dans un printf.
exemple : printf ("%g", x);
Ça t'évite d'avoir d'innombrables zéros derrière la virgule ;)
0