Pour tirer un nombre aléatoire en C, la fonction int rand() permet de tirer un entier pseudo-aléatoire entre 0
et RAND_MAX
inclus. RAND_MAX est une constante définie dans la bibliothèque stdlib.h
, sa valeur peut varier d'un compilateur à l'autre.
Voici un exemple de programme en C qui génère un nombre aléatoire entre 0 et RAND_MAX :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// Initialiser le générateur de nombres aléatoires avec l'heure actuelle
srand(time(NULL));
// Générer un nombre aléatoire
int random_number = rand();
// Afficher le nombre aléatoire
printf("Nombre aléatoire : %d\n", random_number);
return 0;
}
#include <stdlib.h>
: Cette directive inclut les déclarations de rand()
et srand()
.#include <time.h>
: Cette directive inclut la déclaration de time()
, utilisée pour obtenir l'heure actuelle.srand(time(NULL))
: Initialise le générateur de nombres aléatoires avec une graine basée sur l'heure actuelle. Cela permet de s'assurer que les nombres générés seront différents à chaque exécution du programme.rand()
: Génère un nombre entier pseudo-aléatoire entre 0 et RAND_MAX
.Pour obtenir un nombre aléatoire dans une plage spécifique, par exemple entre min
et max
, la formule suivante est classiquement utilisée :
int min = 10;
int max = 50;
int random_number = (rand() % (max - min + 1)) + min;
Voici le programme complet avec cette modification :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// Initialiser le générateur de nombres aléatoires avec l'heure actuelle
srand(time(NULL));
// Définir la plage des nombres aléatoires
int min = 10;
int max = 50;
// Générer un nombre aléatoire dans la plage [min, max]
int random_number = (rand() % (max - min + 1)) + min;
// Afficher le nombre aléatoire
printf("Nombre aléatoire entre %d et %d : %d\n", min, max, random_number);
return 0;
}
rand() % (max - min + 1)
: Cette expression génère un nombre aléatoire entre 0 et (max - min)
.+ min
: Cette partie ajuste le résultat pour qu'il soit dans la plage souhaitée [min, max]
.Ces exemples te montrent comment générer des nombres aléatoires en C, à la fois dans une plage spécifique et dans toute la plage possible des nombres entiers retournés par rand()
.