Generer un nombre aleatoire, language c

Résolu/Fermé
ksta - 6 nov. 2009 à 23:54
 ksta - 7 nov. 2009 à 17:20
Bonjour,

J'ai un petit soucis, j'ai cherché sur le forum comment générer un nombre aléatoire et j'ai trouvé ceci :

int u;

srand(time(NULL));
u = rand() %10;


Et effectivement cela fonctionne très bien, j'obtiens bien un nombre aléatoire entre 0 et 10.
Je dois utilisé cette variable plusieurs fois mais malheureusement j'obtiens le même chiffre dans le temps.

Je m'explique : lorsque j'appel u pour lui faire faire des petit calcules un nombre n déterminé, il recommence n fois mes calcules avec le même u. Donc ma valeur u ne deviens plus si aléatoire que ça...

ex : n x u * u
n = 3 & u = 2

il me donne : 2 * 2 = 4
2 * 2 = 4
2 * 2 = 4

Je pourrais utilisé usleep() pour faire donc une pause dans le temp mais mon programme doit travaillé plus vite...
Voilà j'espère avoir été assez claire dans ma question... merci par avance

salutation

3 réponses

cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 16
7 nov. 2009 à 00:40
refais-tu u=rand()%10; à chaque fois ? il le faut. si ce n'est pas ça, je ne vois pas le problème, désolé
1
Pacorabanix Messages postés 3248 Date d'inscription jeudi 23 août 2007 Statut Membre Dernière intervention 19 mai 2013 660
7 nov. 2009 à 01:17
pour préciser ce que dit cycloop si tu n'as pas compris: lorsque tu fais u = qqchose, alors la valeur de u est changée sur le moment, mais ça ne veut pas dire qu'à chaque fois que tu marques "u" dans le programme alors la variable u "serait liée" à rand et redonnerait un nombre aléatoire.

une variable est un tiroir qui possède une certaine valeur, ce n'est pas une fonction qui refait un calcul à chaque appel.
0
merci pour vos réponses, j'ai réussi à regler mon problême il suffisait simplement de mettre ma variable dans une boucle

merci a plus
0