Nombre aléatoire dans variable
Fermé
jenaipasdideepourlenomdutilisate
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
-
11 mai 2019 à 15:01
jenaipasdideepourlenomdutilisate Messages postés 20 Date d'inscription lundi 25 mars 2019 Statut Membre Dernière intervention 10 juillet 2019 - 9 juil. 2019 à 21:26
jenaipasdideepourlenomdutilisate Messages postés 20 Date d'inscription lundi 25 mars 2019 Statut Membre Dernière intervention 10 juillet 2019 - 9 juil. 2019 à 21:26
A voir également:
- Nombre aleatoire
- Nombre facile - Télécharger - Outils professionnels
- Kahoot gratuit nombre de participants - Forum Réseaux sociaux
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Ascii nombre de caractères - Guide
- Nombre de combinaison possible avec 4 chiffres - Forum Programmation
2 réponses
[Dal]
Messages postés
6202
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 janvier 2025
1 097
13 mai 2019 à 10:32
13 mai 2019 à 10:32
Salut,
La fonction
Une façon simple d'obtenir un nombre entre 1 et 500, par exemple, est de faire comme cela :
Avant de l'utiliser, il faut initialiser le générateur de nombres avec
Par exemple, le code suivant génère 10 nombres entre 1 et 500 :
Références :
http://www.cplusplus.com/reference/cstdlib/srand/
http://www.cplusplus.com/reference/cstdlib/rand/
http://www.cplusplus.com/reference/ctime/time/
Dal
La fonction
rand()existe en C. Elle génère des nombres pseudo-aléatoires sous forme d'entier entre 0 et RAND_MAX.
Une façon simple d'obtenir un nombre entre 1 et 500, par exemple, est de faire comme cela :
int nombre = rand() % 500 + 1;
Avant de l'utiliser, il faut initialiser le générateur de nombres avec
srand(), sinon, le générateur va toujours sortir la même séquence de nombres. Une façon de l'initialiser est de lui passer en paramètre le résultat de la fonction
time(NULL);qui renvoie un type entier représentant la date et l'heure actuelle à la seconde près.
Par exemple, le code suivant génère 10 nombres entre 1 et 500 :
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int nombre; /* initialisation */ srand(time(NULL)); /* générer 10 nombres compris entre 1 et 500 */ for (int i = 0; i < 10; i++) { nombre = rand() % 500 + 1; printf("%d ", nombre); } printf("\n"); return 0; }
Références :
http://www.cplusplus.com/reference/cstdlib/srand/
http://www.cplusplus.com/reference/cstdlib/rand/
http://www.cplusplus.com/reference/ctime/time/
Dal
lugdanum
Messages postés
116
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
4 novembre 2024
41
11 mai 2019 à 15:31
11 mai 2019 à 15:31
jenaipasdideepourlenomdutilisate
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
1
Modifié le 11 mai 2019 à 16:01
Modifié le 11 mai 2019 à 16:01
merci je suis allé sur le lien mais il y a beaucoup de "mais il peut y avoir des risque de ..." En gros, ces méthodes ne fonctionnent pas dans tout les cas.
N'y existe-il pas une ligne de code du style rand() ou intrandom() qui puisse etre utilisé pour définire une variable ?
N'y existe-il pas une ligne de code du style rand() ou intrandom() qui puisse etre utilisé pour définire une variable ?
14 mai 2019 à 13:09
Et il marche sans plafond (nombre max ou min ) ?
Modifié le 14 mai 2019 à 14:32
peut produire un nombre de à , qui, selon le standard du C doit valoir au moins . Tu peux afficher la valeur de (qui est une constante définie par une macro dans ) pour ton implémentation du C, qui sera certainement supérieure, en faisant :
Modifié le 14 mai 2019 à 14:50
les limites des types entiers sont accessibles par l'entête standard :
http://www.cplusplus.com/reference/climits/
28 juin 2019 à 19:36
Voici ce qu'il m'affiche:
je me disait que se serait peut-etre la boucle mal placé,mais non
Une solution ?
1 juil. 2019 à 14:44
Le code fournit est du code valide en C99 (la révision du standard du C datant de 1999), qui permet la déclaration de variables dans la boucle for. Si ton compilateur est ancien, ne supporte pas C99, ou que tu ne veux pas faire du code C99 (c'est un peu dommage, mais tu as peut-être de bonnes raisons), tu peux écrire à la place de :
les deux lignes suivantes :
Sinon, je n'ai pas de "solution" autre tant que tu ne donnes pas un vrai message d'erreur.
Dal