Nombre aléatoire réel en C
eric
-
le père -
le père -
Bonjour,
Je cherche l'instruction permettant de me créer un nombre aléatoire réel entre 0 et 7 exclus, j'ai écrit l'instruction suivante:
rand()*(7/RAND_MAX);
et ça ne me retourne que des 0.00, est ce normal?
merci
Je cherche l'instruction permettant de me créer un nombre aléatoire réel entre 0 et 7 exclus, j'ai écrit l'instruction suivante:
rand()*(7/RAND_MAX);
et ça ne me retourne que des 0.00, est ce normal?
merci
2 réponses
-
Bonjour
Oui c'est normal.
7 est un entier et RAND_MAX aussi. Quand tu fais (7/RAND_MAX), c'est une division d'entier, le résultat est 0.
Pour avoir un 'bon' résultat tu peux faire
(rand()*7)/RAND_MAX -
Bien sûr, j'ai laissé des entiers ...
Il fallait lire (rand()*7.0)/RAND_MAX
(le 7.0 au lieu de 7 force les opérations en flottant)