Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme monprogramme passe a la compilation mais ne marche pas

    2 novembre 2006 à 17:14:28

    Bonjour,


    Mon environnement de programmation


    <puce>Mon langage :C </puce>

    <puce>Mon système d'exploitation : WINDOWS XP </puce>

    <puce>Mon IDE : CODE BLOCKS </puce>



    Mon programme Le jeu du mastermind
    Ce qu'il doit faire
    pour le moment il ne doit faire que saisir une chaine de caracteres de 6 caracteres qui doivent obligatoirement etre choisi parmi les lettres RVOJMB



    L'implémentation que j'ai choisie

    j'ai un procedure lire chaine qui me permet de saisir la chaine et me dire s' il y a plus de 6 caracteres il y a erreur et si les caracteres differents de RVOJBM il ya erreur et si le code est bon c'est bon .
    J'ai aussi la fonction verifier code permet de verifier si les caracteres saisis sont les bons caracteres.

    Mon bug

    A la compilation il n'y a pas de problemes mais lorque je saisis 6 caracteres
    et que ce sont de bons caracteres le programme m'affiche erreur ce ne sont pas mes bons caracteres

    Citation : Pas de titre

    /*****************************************************/

    /*CONSTANTES*/
    #define NB_LETTRES 6
    #define VRAI 1
    #define FAUX 0


    /*variables globales*/

    char
    </couleur> motSecret[NB_LETTRES+1];
    char motSecretBis[NB_LETTRES+1];
    char motTeste[NB_LETTRES+1];

    /*Fonctions*/
    void AfficheEnteteDuJeu();
    int verifierCode(char chaine[NB_LETTRES+1]);
    void LireChaine(void);


    /********programmeprincipal**************************/
    int main()
    {
    AfficheEnteteDuJeu();
    int verifierCode(char chaine[NB_LETTRES+1]);
    void LireChaine(char chaine[NB_LETTRES+1]);
    system("PAUSE");
    return 0;
    }

    /****************************************************/


    void AfficheEnteteDuJeu()
    {


    printf( "********************************************\n");
    printf(" Jeu du Mastermind \n");
    printf("*********************************************\n");
    }


    /***************************************************************************/

    int verifierCode(char chaine[NB_LETTRES+1])

    {

    int
    i;
    int erreurCouleur;
    erreurCouleur=FAUX;
    for(i=0;i<7;i++)
    /ici j'ai une boucle qui verifie que mes caracteres sont corrects ile semble que l'erreur est ici/
    {
    if(chaine[i]!='R'&&chaine[i]!='V'&&chaine[i]!='B'&&chaine[i]!='J'&&chaine[i]!='O'&&chaine[i]!='M')
    {

    erreurCouleur=VRAI;
    }
    }
    return erreurCouleur;
    }
    /******************************************************************************/

    void LireChaine(char chaine[NB_LETTRES+1])
    {
    char tampon[100];
    int erreur;
    int erreurCouleur;
    {
    erreur=FAUX;
    do
    {
    printf("entrer un code couleur de 6 caracteres (R/V/B/O/M/J)\n");
    scanf("%s",&tampon");

    /ici j'ai saisi ma chaine la ca marche/

    if(strlen(tampon)>NB_LETTRES)
    {
    printf("Erreur : Le code comporte plus de 6 caracteres\n");


    erreur=VRAI;

    /ici je verifie qu'il y ait bien 6 caracteres ca marche/

    }



    if(strlen(tampon)== NB_LETTRES)
    {
    erreurCouleur=verifierCode(tampon);
    if(erreurCouleur=VRAI)
    {
    printf("Erreur : Le code ne doit comporter que\n");
    printf("les lettres : R-V-B-O-J-M\n");
    erreur=VRAI ;
    /ici lorque je lance le programme je met les bonnes lettres le programme m'affiche toujours ca/

    }
    else

    {
    printf("le code est bon");
    strcpy("%s",tampon);
    erreur=FAUX;

    }
    }
    }

    while (erreur=VRAI<couleur nom="rouge">);

    /ca ne me l'affiche jamais/
    }
    }







    Excusez moi pour l'indentation ayez pitié je suis débutante et j'ai beaucoup de mal.
    Il y a t'il un moyen pour colorer le code imediatemment ou il faut toutes les ajouter ?
    excusez moi pour les couleur mais a l'apercu immediat tout marche bien.
    Merci beaucoup beaucoup pour votre aide.







    Merci par avance de votre aide
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      2 novembre 2006 à 17:18:31

      pour colorer le code automatiquement : <code type="c">ton code< /code> en enlevant l'espace avant "/code" ;)
      • Partager sur Facebook
      • Partager sur Twitter
        2 novembre 2006 à 17:21:53

        Le message qui suit est une réponse automatique activée par un modérateur.
        Les réponses automatiques permettent d'éviter aux modérateurs d'avoir à répéter de nombreuses fois la même chose, et donc de leur faire gagner beaucoup de temps.
        Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter le modérateur en question par MP.


        Merci d'utiliser les balises de code


        Bonjour,

        Les forums du Site du Zér0 disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source.
        Vous avez posté un code source sans utiliser cette fonctionnalité. Pourriez-vous éditer votre message en entourant votre code des balises &lt;code &gt; et &lt;/code&gt; ?

        Cela aura pour effet de "colorer" votre code et donc d'en faciliter grandement la lecture. Vous aurez ainsi beaucoup plus de chances d'avoir des réponses.

        Voici un exemple de code non coloré avec la balise "citation" (mauvais exemple) :

        Citation

        int main(int argc, char *argv[])
        {
        long choixOperation;

        printf("Choisissez l'operation a effectuer");
        /* etc. */
        }



        Voici maintenant le même code coloré, si vous aviez utilisé la balise "code" (bon exemple) :

        int main(int argc, char *argv[])
        {
            long choixOperation;

            printf("Choisissez l'operation a effectuer");
            /* etc. */
        }


        C'est plus clair n'est-ce pas ? :)
        N'hésitez pas à éditer votre message pour changer la balise afin de colorer votre code.

        Plus d'informations à ce sujet


        Merci de votre compréhension :)
        Les modérateurs.
        • Partager sur Facebook
        • Partager sur Twitter
          2 novembre 2006 à 17:39:20

          Salut,
          bien que ce code ne dusse pas compiler,
          dans la fonction verifierCode(),
          comment veux tu que chaine[i] soit non different de 'R' , de 'V'
          et des autres ? ( si c'est 'R', c'est pas 'V' .. et vice et versa .. )
          plutot que d'utiliser des && mets deux doublebarres || ( sous le 6 sur un clavier francais .. )
          • Partager sur Facebook
          • Partager sur Twitter
            4 novembre 2006 à 11:33:34

            merci pour cette erreur mais maintenant le programme ne marche plus .
            merci pour votre aide si vous trouver ce qui ne va pas.
            • Partager sur Facebook
            • Partager sur Twitter
              4 novembre 2006 à 11:44:15

              Bon deja en lisant ton code en diagonale il y a des erreurs :
              - = c'est l'operateur d'affectation
              == c'est l'operateur pour test l'egalite.

              Voila c'est tout en lisant en diagonale, j'ai pas ete plus loin dans l'analyse car c'est illisible.
              Indente ton code stp. (un conseil utilise Code::Blocks il te fais l'indentation a la demande).

              Kurapix
              • Partager sur Facebook
              • Partager sur Twitter
                4 novembre 2006 à 13:52:32

                Bonjour,
                deux erreurs là voir 3 si l'on regarde l'utilisation:
                int verifierCode(char chaine[NB_LETTRES+1]);

                tu ne peux pas transmettre un tableau à une fonction de cette façon:
                soit tu le passe de cette façon:
                int verifierCode(char* chaine)

                sois tu le passe de cette facon:
                int verifierCode(char chaine[])

                NB_LETTRES étant un define, dans ta fonction tu peux eventuellement créer une variable:
                nbLettres = NB_LETTRES+1


                de plus, tu écris le prototype de ta fonction avant ton main, ça c'est ok mais par contre, dans ton main, tu le redéclare (idem pour LireChaine):
                int main()
                {
                    AfficheEnteteDuJeu();
                    int verifierCode(char chaine[NB_LETTRES+1]);
                    void LireChaine(char chaine[NB_LETTRES+1]);
                    system("PAUSE");
                    return 0;
                }

                alors qu'à mon avis tu voulais l'appeler.
                - Tes variables "chaine" sont globales alors qu'en les passants ainsi à tes fonctions, elles n'ont pas besoin de l'être.

                j'ai fait comme Kurapix, j'ai lu en grande diagonale (j'ai regardé que ton main pour être précis) mais en peu de ligne, il y a déjà beaucoup d'erreurs.

                Je t'encourage à revenir en arrière sur le cours et à faire des tests sur ce que tu sais mais une chose à la fois, il ne faut pas aller trop vite, sinon c'est la meilleur façon de se prendre les pieds dans le tapis et d'être dégouté (parce que noyé).
                • Partager sur Facebook
                • Partager sur Twitter
                  4 novembre 2006 à 15:49:22

                  merci beaucoup pour votre aide
                  • Partager sur Facebook
                  • Partager sur Twitter

                  probleme monprogramme passe a la compilation mais ne marche pas

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown