[C++] le nombre se génère à la compilation

Résolu
canarder Messages postés 2034 Statut Membre -  
fiddy Messages postés 11653 Statut Contributeur -
Bonjour,

Voici ma méthode pour générer un nombre (code raccourci) :
#include <iostream>
#include <string>
#include <cstdlib>

int main(int argc, char** argv) {
int appNb = rand()%100; // ici
return 0;
}


Sauf mon nombre a été généré au moment de la compilation (il est fixé à 33 à chaque fois que je lance le programme).

Comment puis-je générer un nombre int entre 0 et 100 à chaque démarrage de mon application ?

Merci pour votre aide.
A voir également:

4 réponses

[Dal] Messages postés 6373 Statut Contributeur 1 106
 
Salut,

Ajoute

#include <time.h>

et

fait précéder ton appel à rand() par :

srand(time(NULL));

Pour initialiser le générateur de nombres aléatoires.


Dal
0
canarder Messages postés 2034 Statut Membre 355
 
Il est bien aléatoire, par contre il est jamais au dessus de 50, c'est bizarre.
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
rand() % 100 va produire des nombres entre 0 et 99.

Pour des méthodes alternatives d'initialisation, vois cette discussion, qui donne de nombreuses autres méthodes :

https://stackoverflow.com/questions/322938/recommended-way-to-initialize-srand


Dal
0
canarder Messages postés 2034 Statut Membre 355
 
Et comment faire pour que 0 et 100 soient inclus ?
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
En faisant un modulo sur 101.
0
canarder Messages postés 2034 Statut Membre 355
 
merci
0
fiddy Messages postés 11653 Statut Contributeur 1 847
 
Pour info, c'est plutôt ctime qu'il faut inclure et non time.h.

Cdlt,
0