Nombre aléatoire réel en C

eric -  
 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

2 réponses

  1. le père
     
    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
    0
    1. eric
       
      salut père, ça ne change rien , ton code ne renvoie que des 0.00 :)
      0
  2. le père
     
    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)
    0