Salut,
je cherche un exemple de code en langage c permettant de remplir un tableau par des nombres aléatoires.
il y a la fonction rand(je pense) mais je ne sais pas comment l'utiliser.
Merci pour votre aide
Salut,
je cherche un exemple de code en langage c permettant de remplir un tableau par des nombres aléatoires.
il y a la fonction rand(je pense) mais je ne sais pas comment l'utiliser.
Merci pour votre aide
Bonjour,
Le code est très simple, ainsi, je vais te donner les outils pour le faire et tu vas y arriver
Dans l'idée ( algorithme )
Comment on récupère les variables aléatoires ? : en utilisant effectivement rand()allouer l'espace mémoire pour le tableau ( avec malloc() ou calloc() )
faire une boucle pour parcourir toutes les cases du tableau ( un petit for)
pour chaque case, remplir la case avec une valeur aléatoire ( je précise après )
( Conseil, lorsque que tu ne sais pas quelque chose à propose d'une fonction, tu peux chercher ( sous les unix avec une commande qui s'apelle man ( exemple man 3 rand ) ) ou sur internet man pages rand ( ou simplement man rand) )
D'après la doc, rand renvoie un int , et ne prend rien comme argument.
Donc
va remplir r avec une valeurs aléatoires ( et toujours d'après la doc ) comprises entre 0 et RAND_MAX.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int r = rand();
( RAND_MAX est défini et tu peux l'utiliser comme tu veux ( tu n'as pas trop besoin de savoir sa valeur ).
Si tu veux un nombre entre 0 et 100 , tu peux faire ( la méthode n'est pas la meilleure ) :
pour un nombre entre 0 et 1 ( float )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int r = rand()%100;
Pour utiliser rand() n'oublie pas le #include <stdlib.h>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 float r = (float)rand()/RAND_MAX;
Si tu veux que les valeurs soit aléatoires entre plusieurs execution du programme, il faudra redéfinir la graine pour la génération de nombre aléatoire ( voir page de la wikipedia , sur les nombres aléatoires ).
( Juste rapidement, un ordinateur ne peut pas donner un nombre 100% aléatoire donc on utilise une graine pour le faire ).
Celle ci est souvent basé sur le temps, nous pour le faire on fait :
time(NULL) renvoie le temps
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 srand(time(NULL));
srand() prend un unsigned int avec la graine
pour la fonction time il te faudra inclure <time.h>
Voilà, si tu as des questions n'hésite pas![]()
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
http://emmanuel-delahaye.developpez....=Page7#LXXXVII
Fait de ton mieux et poste ton code.
C'est pas plutot la bibliothèque time.h qu'il faut pour utiliser les rand() ?
rand() et srand() sont déclarées dans <stdlib.h>
Merci pour vos réponses.
Ci-joint mon code. Est ce qu' il est faisable?Que vous me suggérez?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include <stdio.h> #include <stdlib.h> int main () { int i; srand(50); /* MODIF */ for (i = 0; i < 50; i++) { int T = rand ()%100; printf ("%d ", T); } printf ("\n"); return 0; }
Partager