Je veux générer 2 nombres aléatoires entre 0 et 20générer des nombres aléatoires en C
int one = rand() % 20;
il me donne une valeur constante i.e. 1 ...
Suis-je manque quelque chose?
Je veux générer 2 nombres aléatoires entre 0 et 20générer des nombres aléatoires en C
int one = rand() % 20;
il me donne une valeur constante i.e. 1 ...
Suis-je manque quelque chose?
Vous devez donner une graine au nombre aléatoire.
srand(time(NULL));
int num1 = rand() % count;
int num2 = rand() % count;
nombre aléatoire entre 1 et 20
int num = rand() % 20 ;
if(num == 0)
num += 2;
else if(num == 1)
++num ;
Non, vous n'avez pas besoin de. – SLaks
Que faire si je veux un nombre aléatoire compris entre 1 et 20? –
http://pubs.opengroup.org/onlinepubs/009695399/functions/rand.html 'Si rand() est appelé avant que les appels à srand() ne soient faits, la même séquence doit être générée comme lorsque srand() est premier appelé avec une valeur de départ de 1. – SLaks
Cela se passerait-il si count
est un.
Si count
n'est pas un, votre code works perfectly. Toutefois, comme mentionné, vous devez définir une graine non déterministe en appelant srand
.
Vinod K veut probablement des nombres aléatoires différents chaque fois qu'il exécute son programme. Dans ce cas, il devrait définitivement l'utiliser en utilisant srand. –
Pour générer un nombre aléatoire dans une plage spécifiée [min, max], faire quelque chose comme:
min + (int)((double) rand()/RAND_MAX * (max - min + 1));
La méthode
min + rand() % (max - min + 1);
peut être plus rapide, mais il ne peut pas donner vous une distribution normale des valeurs en fonction du RNG.
Et comme d'autres l'ont déjà dit, si vous voulez une séquence différente pour chaque course, exécuter srand
une fois au début du programme.
Qu'est-ce que 'count'? – SLaks
compte est une variable ... –
Votre code fonctionne très bien. http://www.ideone.com/52L8O – SLaks