Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tp1 : "plus ou moins"

problème au niveau de la nouvelle partie

Sujet résolu
    22 décembre 2005 à 21:16:35

    Bonsoir,

    Bon et bien content d'avoir réussi la première partie du TP1, le début des améliorations ( le compteur ça passe :p ). Mais arriver à la nouvelle partie, les premiers bugs commencent un coup de modifie quelque chose il marche et s'arrête au deuxième nombre bref à force de modifier je ne vois même plus mes propres erreurs...
    Voilà si vous pourriez m'aider ce serait sympas.
    Le problème du moment c'est que mon programme s'éteind quand on rentre le premier nombre et qu'on valide :colere:
    Mon code:


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

    int main(int argc, char *argv[])
    {
     
      /* declaration des variables */
     
      long MAX = 100, MIN = 1;
      long nombreMystere = 0, nombreChoisi = 0, nombre_tour = 0;
      char new_partie[3] = "oui";

     
            /* fonction créant le nombre aléatoire */
           
      srand(time(NULL));
      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
           
      printf ("                             Le plus ou moins                        \n\n\n");
      printf ("   Le principe de ce jeu est simple il vous suffit de deviner\n\n");
      printf ("   le nombre auquel pense l ordinateur !!! (compris entre 1 et 100) \n\n");       
      printf ("   Pour le deviner il vous donnera des indices + ou    -\n\n");
      printf ("   Voila vous savez tout maintenant c'est a vous de jouer, good luck :-p\n\n");
     
      printf ("   veux-tu jouer ? oui ou non\n\n");
      scanf  ("   %s", &new_partie);
                         
     getchar ();         
                                 
              do
                   
                   {
           
                          nombre_tour = nombre_tour + 1;
                         
                          printf ("   rentrez un nombre:   ");
                         
                          scanf  ( "%ld", &nombreChoisi );
                         
                       /*  test de l'ordinateur */
                                   
                                                                                     if ( nombreChoisi <= MAX && nombreChoisi >= MIN )
                                       
                                                                                        {
                                                     
                                                                                               if ( nombreChoisi > nombreMystere )
                                                     
                                                                                                                 {
                                                                                                                                 printf ("   \n\n   Rate, c'est moins\n\n ");
                                                                                                                                 getchar ();
                                                                                                                 }
                                                     
                                                                                               else if ( nombreChoisi < nombreMystere )
                                                     
                                                                                                                 {
                                                                                                                                 printf ("   \n\n   Rate, c'est plus\n\n ");
                                                                                                                                 getchar ();
                                                                                                                 }         
           
                                                                                               else
                                                         
                                                                                                                 {
                                                                                                                                 printf ("   \n\n   Bien joue, je m'incline devant ton intel...  :p\n");
                                                                                                                                 printf ("          Tu as fait %ld essai(s)", nombre_tour);
                                                                       
                                                                                                                                 getchar ();
                                                                       
                                                                                       /* demande de la nouvelle partie */
                                                                       
                                                                                                                                 printf ("   \n\n   Voulez-vous faire une autre partie ? oui et non\n");
                                                                                                                                 scanf  ("%s", &new_partie);   
                                                                                                                 } /* fin du else */
                                                                                             
                                                                                        }     
                                                                                                             
                                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                         
                                                                      else if ( nombreChoisi < MIN || nombreChoisi > MAX  )
                                                                 
                                                                                        {                                                                                                       
                                                                                                    printf ("   Je pense que tu n'as pas lu les regles du jeu\n\n ");
                                                                                                    getchar ();
                                                                                        }
                             } while ( new_partie == "oui");   /* fin du do partie == oui*/
      return 0;
    }



    Merci d'avance @++
    • Partager sur Facebook
    • Partager sur Twitter
      22 décembre 2005 à 22:04:52

      new_partie > doit être un BOOLEEN et non une chaîne de caractères malheureux !
      Tu peux PAS comparer une chaîne de caractères comme "oui" avec un char* ça ne se fait PAS et ne marche pas.

      while ( new_partie == "oui");
      doit être supprimé, ou du moins remplacé par un booléen.

      Un booléen prend moins de place en mémoire mais est surtout plus adapté, et lui au moins il marche !


      En outre tu ne maîtrises pas du tout ce que tu utilises car tu crées un tableau de char de 3 cases alors qu'il en faut une de plus pour stocker le caractère de fin \0
      Si tu ne sais pas ce que tu fais, ne le fais pas. Ou au moins, attends que j'explique ça dans le cours (partie II).
      De toute façon un booléen est et sera toujours plus adapté dans ce cas.
      • Partager sur Facebook
      • Partager sur Twitter

      If you'd like to join us, read "How do we work at OpenClassrooms"! :)

        22 décembre 2005 à 22:22:25

        ok merci bon bas il reste plus qu'à mettre ce booléen
        @++
        • Partager sur Facebook
        • Partager sur Twitter

        Tp1 : "plus ou moins"

        × 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