Coyotte507 en fait après quelques recherches il apparait que RAND_MAX représente la valeur maximum d'un short soit 32767 par contre je ne comprends toujours pas pourquoi on passe ensuite à des nombres négatifs ???
quand on dépasse cette valeur en faisant :
#define RAND_NUM ((float)rand()/(RAND_MAX+1))
Grâce à la FAQ C++ (merci Mongaulois
), je me répond à moi même pour les personnes que cela intéressera au sujet du warning due à une conversion implicite : en utilisant un static_cast
1 2 3 4 5 6 7
|
int tirage(int max)
{
#define RAND_NUM ((float)rand()/(RAND_MAX))
int x;
x = static_cast<int>(RAND_NUM*(max+1));
cout << x << endl; |
Partager