Nombre aléatoire dans variable [Fermé]

Signaler
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
-
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
-
Bonjour,

Je cherche le moyen de mettre un nombre aléatoire (disons entre 1 et 500) dans une variable qui s’appellera "a".
Est-ce possible (je pense que oui : je ne suis pas désespéré à se point) ?

merci de vos réponses

2 réponses

Messages postés
5383
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2020
885
Salut,

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
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60856 internautes nous ont dit merci ce mois-ci

Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
1
Merci, mais...le programme ne fonctionne pas.

Voici ce qu'il m'affiche:


je me disait que se serait peut-etre la boucle mal placé,mais non
Une solution ?
Messages postés
5383
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2020
885
Il y a de nombreuses années que je n'ai pas utilisé DevC++, qui a connu un développement assez chaotique .. cela dit, dans ta capture, je ne vois pas de message d'erreur, juste une ligne marquée en rouge.

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 :

for (int i = 0; i < 10; i++) {

les deux lignes suivantes :

int i;
for (i = 0; i < 10; i++) {

Sinon, je n'ai pas de "solution" autre tant que tu ne donnes pas un vrai message d'erreur.

Dal
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
1
En fait ça fonctionne.
Et comment on fait pour le mettre dans la variable "a" ?

En fait, ce que je veux faire, c'est écrire ce nombre (ou plutôt la variable) avec la commande keybd_event().
Je doit mettre quoi au niveau du texte à écrire ?
Messages postés
5383
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
10 juillet 2020
885
Et comment on fait pour le mettre dans la variable "a" ?

Tu déclares une variable
a
au lieu d'une variable
nombre
...

ce que je veux faire, c'est écrire ce nombre (ou plutôt la variable) avec la commande keybd_event()

cette fonction de l'API Windows sert à simuler la pression d'une touche au clavier

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-keybd_event

que cherches tu à faire ?
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
1
Supposons que le programme sorte le nombre 183. J'aimerais qu'il presse les touche "1", "8" et "3" pour pouvoirs l’écrire.

Sinon, pour le nom de la variable, c'est bon c'est réglé:je me basais sur ma problématique qui indiquait que le nombre devait être dans la variable "a".
Messages postés
91
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
4 mai 2020
22
Messages postés
20
Date d'inscription
lundi 25 mars 2019
Statut
Membre
Dernière intervention
10 juillet 2019
1
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 ?