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 :

Problème random et switch


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problème random et switch
    Bonjour à tous
    Ce matin en levant m'est venu une grande idée réaliser un Mastermind, je prend donc un crayon un papier et je pose mon algo, je me lance devant mon ordi et c'est parti.
    Toute cette intro pour dire que je suis bloqué sur un bête random et un switch qui font des trucs bizarres.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #include <iostream>
    #include <time.h>
     
    using namespace std;
     
    void randcouleur();
     
    int essai [11] [3];
    int solution [3];
     
    int tourrandom=0;
     
    int main()
    {
        srand(time(NULL));
        cout << "Mastermind" << endl;
        cout << "Lancement de la séquence d'initialisation" << endl;
        randcouleur();
     
        return 0;
    }
    void randcouleur()
    {
        cout << "Initialisation" << endl;
        while (tourrandom < 4)
        {
            int random = 1 + (int)((double)rand() / ((double)RAND_MAX + 1) * 5);
     
            cout << random <<endl;
            cout << tourrandom <<endl;
            solution[tourrandom] = random;
            tourrandom++;
            cout << tourrandom <<endl;
            cout <<"ici"<<endl;
        }
        cout << solution[0] << solution[1] << solution[2] << solution[3] <<endl;
    }
    Le problème est que à l'utilisation le programme me sort toujours 2 en premier chiffre, ensuite 2 nombres aleatoire, puis le dernier chiffre est une enigme car si il me sort 5 il inscrira 6

    Un des résultats que je viens d'obtenir :
    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
     
    2
    0
    1
    ici
    3
    1
    2
    ici
    5
    2
    3
    ici
    2
    3
    3
    ici
    5
    3
    6
    ici
    2356
    Intrigants non ?
    Je me doute que j'ai dû faire une erreur .... donc soyez indulgents, please.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    j'ai pas tous regardé mais ça vient peut être du fais que tu déclares :
    donc un tableau avec 3 cases.
    Mais que tu le manipule comme un tableau avec 4 cases.

    EDIT :
    J'ai testé et a priori c'est bien ça, tu bidouille hors de ton tableau et ça crée des comportements indéfinis.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci
    Effectivement cela résout le problème du dernier chiffre, mais toujours pas celui du premier chiffre qui ne change pas d'une simulation à une autre.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    Citation Envoyé par Lord Nazdar Voir le message
    Merci
    Effectivement cela résout le problème du dernier chiffre, mais toujours pas celui du premier chiffre qui ne change pas d'une simulation à une autre.
    exact j'avoue ne pas comprendre pourquoi mais le premier rand() me donne un chiffre dans les 31000 qui augmente un peu à chaque exécution..

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par atttchoum Voir le message
    exact j'avoue ne pas comprendre pourquoi mais le premier rand() me donne un chiffre dans les 31000 qui augmente un peu à chaque exécution..
    étrange car pour moi ce chiffre est 5

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai remarqué que le premier chiffre prend la valeur maximal (j'ai changé pour 8 au lieu de 5)
    EDIT : en faite non

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 188
    Par défaut
    Citation Envoyé par Lord Nazdar Voir le message
    étrange car pour moi ce chiffre est 5
    la variable random oui mais j'ai testé la valeur de retour de la fonction rand() et elle me renvoyais toujours dans les 31000.
    Maintenant elle a atteint le RAND_MAX et est redescendus à 500 et continu d'augmenter régulièrement.

Discussions similaires

  1. problème de case/switch
    Par nicolas.sitbon dans le forum C
    Réponses: 5
    Dernier message: 22/09/2007, 21h00
  2. Problème de boucle Switch Case
    Par mLk92 dans le forum Langage
    Réponses: 4
    Dernier message: 14/06/2007, 17h20
  3. problème avec un switch
    Par Tobleron dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2007, 22h50
  4. Problème avec un switch contenant des strings
    Par dessinateurttuyen dans le forum Langage
    Réponses: 6
    Dernier message: 18/07/2006, 12h56
  5. Problème dans un "switch"
    Par belzeluc dans le forum C++
    Réponses: 4
    Dernier message: 04/06/2006, 12h13

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