Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec mon programme

un programme de charades... i need help !

Sujet résolu
Anonyme
    13 février 2006 à 12:29:43

    je m'excuse déjà auprès des modérateurs pour ce 2eme sujet en peu de temps, mais je rencontre un autre problème.

    je souhaite faire un programme qui propose une charade à l'utilisateur, lui demande une reponse, et compare la reponse donnée avec celle qu'il a.

    voila mon code (je n'ai mis qu'une seule charade pour faciliter le code sur le forum, mais normalement dans le 'srand', MAX est un nombre plus élevé defini par moi en fonction du nombre de charade. Je vous fait donc grâce du switch...)

    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
    const long MIN = 1;
      long MAX = 1, nombreMystere = 0;
      char reponseUtil[100];
      srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

    printf("*****CHARADE*****\n\n");
    printf("Mon premier sert aux oiseaux.\nMon deuxieme est un champion.\nMon troisieme est nerveux.\n\nMon tout est extensible.\n\n");
    //***************************************************************

    printf("Votre reponse ? (en minuscule, sans accents)\n\n");
    scanf("%s", reponseUtil);
    printf("\n%s\n\n", reponseUtil);
      char reponseCharade[] = "elastique";
                   if(reponseCharade == reponseUtil)
                        printf("Bravo !");
                   else if(reponseCharade != reponseUtil)
                        printf("NON ! dommage !");
    system("PAUSE");       
      return 0;
    }


    seulement voila vraiment mon probleme:
    quelle que soit la reponse donnée, il ecrit toujours la reponse 'NON ! dommage!"

    vous comprendrez que c'est plutôt...disons gênant :D
    je vous demande donc votre aide

    ps: je rappelle que c'est un code légèrement simplifié avec une seule charade
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2006 à 12:41:47

      utilise strcmp pour comparer deux chaine ;)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        13 février 2006 à 12:45:17

        MAIS QUEL IMBECILE JE FAIT !!! :D:D
        merci beaucoup, j'essai tout de suite !

        EDIT: CA MARCHE !!!
        merci a toi ekodant

        2eme EDIT: CA MARCHE PLUS !
        j'ai avancé mon programme, et il ne marche plus...
        voila mon code (un peu long, excusez)


        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>

        int strcmp(const char* reponseUtil, const char* reponseCharade);

        int main(int argc, char *argv[])
        {
          system("COLOR 1C");
          const long MIN = 1;
          long MAX = 10, nombreMystere = 0;
          char reponseUtil[100], reponseCharade[100];
          srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
         
                        switch(nombreMystere)
                                             {case 1:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier sert aux oiseaux.\nMon deuxieme est un champion.\nMon troisieme est nerveux.\n\nMon tout est extensible.\n\n");
                                                   break;
                                              case 2:
                                                  printf("*****CHARADE*****\n\n");
                                                  printf("Mon premier est le mari de la biche.\nMon deuxieme est le petit de la vache.\nMon dernier n'est pas rapide.\n\nMon tout est un joujou qui vole.\n\n");
                                                  break;
                                              case 3:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier a des plumes.\nMon deuxieme a des poils.\nMon troisieme a des plumes.\nMon quatrieme a des poils.\n\nMon tout a des petales.\n\n");
                                                   break;
                                              case 4:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier desaltere.\nMon second est un rongeur.\nMon troisieme est en premier.\n\nMon tout eclaire et tonne !\n\n");
                                                   break;
                                              case 5:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier est un oiseau.\nMon second suit 99.\nOn dort dans mon troisieme.\n\nMon tout est une fleur.\n\n");
                                                   break;
                                              case 6:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier est une note de musique.\nMon second est un animal.\nMon troisieme n'est pas moche.\n\nMon tout est un fruit delicieux !\n\n");
                                                   break;
                                              case 7:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier est un poisson.\nMon second est un poisson.\n\nMon tout est un membre de la famille.\n\n");
                                                   break;
                                              case 8:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("On dort dans mon premier.\nMon second effraie le torero.\n\nMon tout vie dans les contes de fées.\n\n");
                                                   break;
                                              case 9:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier emmene en voyage sur les routes du monde.\nMon second a quatre pattes mais ne voyage pas.\n\nMon tout voyage tous les jours avec toi, sauf le samedi et dimanche.\n\n");
                                                   break;
                                              case 10:
                                                   printf("*****CHARADE*****\n\n");
                                                   printf("Mon premier est une note de musique.\nMon second est une lettre de l'alphabet.\n\nMon tout est le point commun entre la montagne et la chaussure.\nn");
                                                   break;
                                             }

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


        printf("Votre reponse ? (en minuscule, sans accents et sans espaces si il y a 2 mots)\n\n");
                                                   scanf("%s", reponseUtil);
                        switch(nombreMystere)
                                             {
                                             case 1:
                                                   //C'EST LA LIGNE SUIVANTE QU'IL MET EN ROUGE, ET JE NE SAIS PAS POURQUOI !
                                                   reponseCharade[] ="elastique";
                                                   break;                           
                                              case 2:
                                                   reponseCharade[]="cerfvolant";
                                                   break;
                                              case 3:
                                                    reponseCharade[] ="geranium";
                                                   break;
                                              case 4:
                                                    reponseCharade[] ="orage";
                                                   break;
                                              case 5:
                                                    reponseCharade[]="pissenlit";
                                                   break;
                                              case 6:
                                                    reponseCharade[]="mirabelle";
                                                   break;
                                              case 7:
                                                    reponseCharade[] ="tonton";
                                                   break;
                                              case 8:
                                                   reponseCharade[] = "licorne";
                                                   break;
                                              case 9:
                                                    reponseCharade[] ="cartable";
                                                   break;
                                              case 10:
                                                    reponseCharade[] ="lacet";
                                                   break;
                                             }
                                                                                           
                        if(strcmp(reponseUtil, reponseCharade) == 0)
                                               printf("\nBravo !\n\n");
                        else if(strcmp(reponseUtil, reponseCharade) == 1)
                                                    printf("\nNON ! dommage !\n\n");
                                                   
                                                             
                                                       }
                       
                                                   
                                                 
          system("PAUSE");     
          return 0;
        }


        j'ai précisé par un commentaire la ligne qui ne va pas,
        c'est dans la deuxieme partie.
        copiez/collez le code si vous voulez y voir plus clair, car je sais que ça ne l'est pas :euh:
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          16 février 2006 à 13:03:24

          bin alors ? y'a personne qui s'y connait sur un forum sur le C ?
          ça m'étonnerait bien, alors s'il-vous-plait, ne me faites pas douter de la solidarité des zéros ... o_O
          • Partager sur Facebook
          • Partager sur Twitter
            16 février 2006 à 13:07:03

            On affecte pas une chaine de caracteres a un tableau de char comme ça. Utilise strcpy :


            strcpy(reponseCharade,"tareponse");
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              16 février 2006 à 13:14:47

              aaaaaaa !
              merci beaucoup, cette fois ça marche !
              j'avoue bien que j'ai douté l'espace de quelques secondes de la solidarité des zéros...
              mais je vois que si on remet son topic oublié en premier, ça roule ! :D:D
              merci tebonb
              et a+ tout le monde,
              je reviens dès que j'ai un problème ! (qui a dit "oh non, encore lui" ?)
              :p:p:p
              • Partager sur Facebook
              • Partager sur Twitter
                16 février 2006 à 13:31:26

                Citation : tebonb

                On affecte pas une chaine de caracteres a un tableau de char comme ça. Utilise strcpy :


                strcpy(reponseCharade,"tareponse");

                On ne pourrait pas utiliser plutôt sprintf ?
                • Partager sur Facebook
                • Partager sur Twitter
                  16 février 2006 à 13:32:45

                  Ben c'est aussi une autre possibilité, libre à chacun de choisir celle qu'il veut utiliser
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    16 février 2006 à 13:38:27

                    j'ai fait avec strcpy et ça marche alors maintenant, merci les gars, je touche plus ! :p
                    • Partager sur Facebook
                    • Partager sur Twitter

                    probleme avec mon programme

                    × 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