C générateur de nombres aléatoires faisant le même nombre

Comment puis-je obtenir le générateur de nombre aléatoire en c pour me donner des numéros différents chaque fois que ma fonction est appelée.

#include  #include  #include  int main() { printf("%i",num()); printf("%i",num()); } int num() { int MAX = 100; srand ( time(NULL)); int num = rand() % MAX; return num; } 

Peu importe combien de fois j’appelle la fonction num, elle affiche toujours le même numéro. Comment puis-je résoudre ce problème si le numéro est différent pour chaque appel.

La fonction time renvoie généralement le temps en seconde résolution, ce qui signifie que si vous appelez time(NULL) deux fois en une seconde, vous obtiendrez le même résultat.

Bien entendu, cela signifie que vous définissez la même graine de départ sur le générateur de nombres aléatoires, ce qui signifie que la séquence sera la même.

En général, vous n’appelez srand qu’une fois , au début de la fonction main .

Bouge toi

 srand ( time(NULL)); 

à main() . Vous devez appeler srand() une fois dans main() et continuer à appeler rand()