IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

random() me renvoit le même nombre à chaque fois, comment y remédier?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Par défaut random() me renvoit le même nombre à chaque fois, comment y remédier?
    Bonjour,

    J'ai deux questions à vous poser.
    En utilisant la fonction random(), mon code génère le même nombre aléatoire à chaque compilation.

    Que faut-il modifier pour qu'un nombre différent apparaisse à chaque fois?

    Je voulais aussi connaître le nom de la fonction qui me permettra de trouver le nombre de chiffres qui composent de nombre (exemple: nbre_aleatoire= 12345, longueur_nbre_aleatoire= 5).

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    using namespace std;
    #include <iostream>
    #include <stdlib.h>
    int main()
    {
    	int a;
    	int alea;
    	int comp=0;
    	alea=random();
    	while((a!=alea)&&(comp<10)){
    		cout<<"Proposez une valeur svp: ";
    		cin>>a;
    		if(a==alea){
    			if(comp<=5) cout<<"Félicitations, vous êtes un AS!!!!!";
    			else cout<<"Bravo";
    		return 0;
    		}else{
    			if(a>alea)
    			cout<<"La valeur proposée est supérieure au nombre\n";
    			else
    			cout<<"La valeur proposée est inférieure au nombre\n";
    	}
    	comp=comp+1;
    	}
    	cout<<"Vous avez eu droit à 10 propositions, Game Over\n";
    	cout<<"Le nombre qu'il fallait trouver était le: "<<alea;
    }

    Je vous remercie

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    random() me renvoit le même nombre à chaque fois, comment y remédier?
    En lisant la ?

    Sommaire > Divers > Les nombres aléatoires.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Par défaut
    je l'ai justement parcouru

    il est noté qu'il faut passé par TIME mais je ne souhaite utiliser seulement random() associée à une boucle et c'est la boucle qui me pose problème...

    et quelle est la fonction qui me permet de connaître le nombre de chiffres qui compose un nombre?

    merci pour votre aide.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Par défaut
    il suffit de faire un while pour connaître le nombre de chiffres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int nbre=alea;
    int compteur=0;
    while(nbre>1){
        nbre=nbre/10;
        compteur++;
    }
    cout<<"Le nombre à touver se compose de: "<<compteur<<" chiffres\n";
    reste plus que le soucis avec random()..........

  5. #5
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    random() n'existe pas... c'est la pair srand()/rand()

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 67
    Par défaut
    j'ai finalement opté pour la paire time/rand() et tout est rentré dans l'ordre.

    Merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/02/2014, 15h40
  2. Utiliser le même Wifi chaque fois
    Par Raz-X dans le forum Réseau
    Réponses: 2
    Dernier message: 14/03/2012, 14h08
  3. répéter un même caractère un certain nombre de fois
    Par s.rais dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2010, 15h40
  4. Doubler à chaque fois un nombre
    Par Trinoute dans le forum Langage
    Réponses: 2
    Dernier message: 23/10/2007, 14h00
  5. Réponses: 4
    Dernier message: 16/05/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo