Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme fermeture programme

    26 janvier 2007 à 0:05:21

    bon voici mon problème je refait le jeu du nombre mystere pour me remettre dans le bain et voici un gros problème qui tombe du ciel:
    Au lieu d'exécuter le scanf pour demmander au joueur si il veut continuer il arrête le programme.
    PS: je ne veut pas rajouter d'autres options avant d'avoir rêglé ce problème


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

    choixNiveau();

    int main ( int argc, char** argv )
    {
        long nombreMystere = 0, nombreEntre = 0, niveau = 0;
        long MAX = 100, MIN = 1;
       char continuer = 'o';
      choixNiveau(&niveau);

        do
    {
        switch (niveau)
        {
            case 1:
            MAX = 100, MIN = 1;
            break;
            case 2:
            MAX = 1000, MIN = 1;
            break;
            case 3:
            MAX = 10000, MIN = 1;
            break;
            default :
            printf("Je ne comprend pas le nombre que vous avez entre");
            break;
        }

        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

        /* La boucle du programme. Elle se répète tant que l'utilisateur
        n'a pas trouvé le nombre mystère */


        do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

            // On compare le nombre entré avec le nombre mystère

            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
            {
                printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
                printf("voulez-vous rejouer?(o/n)\n");
                scanf("%c", continuer);
            }
        } while (nombreEntre != nombreMystere);

    } while (continuer =='o');
    }


    choixNiveau(long *niveau)
    {

          printf("choisissez votre niveau\n");
        printf("niveau1\n");
        printf("niveau2\n");
        printf("niveau3\n");
        scanf("%ld", niveau);
        return *niveau;
    }
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      26 janvier 2007 à 0:16:03

      Problème récurrent, scanf attend une adresse. Place un & avant 'continuer'.
      • Partager sur Facebook
      • Partager sur Twitter
        26 janvier 2007 à 0:50:29

        ro erreur bête ok sinon ça ne fonctionne toujours pas sniff
        • Partager sur Facebook
        • Partager sur Twitter
          26 janvier 2007 à 1:51:48

          choixNiveau();

          et le type il est ou?
          ta fonction renvoie la même adresse que celle passée en paramètre, plutôt inutile.
          Elle utilise un pointeur, elle n'as rien besoin de renvoyer (void).



          srand(time(NULL));

          -> à initialiser qu'une fois au début du programme


          printf ("Bravo, vous avez trouve le nombre mystere
                               !!!\n\n"
          );
                      printf("voulez-vous rejouer?(o/n)\n");
                      scanf("%c", continuer);

          Pour être plus logique, j'aurais mis ce bout de code à l'extérieur du while() dans lequel il est:
          BOUCLE                                               
             BOUCLE
                tester la valeur du nombre    
             fin
             nouvelle partie?
          fin

          plus 'naturel' que:
          BOUCLE                                               
             BOUCLE
                tester la valeur du nombre
                nouvelle partie?    
             fin
          fin


          à part ça si cela ne fonctionne pas, c'est sans doute du au comportement de scanf. Il existe d'autre fonction: fgetc() . Regarde ces liens:
          http://xrenault.developpez.com/tutoriels/c/scanf/
          http://mapage.noos.fr/emdel/inputs.htm
          • Partager sur Facebook
          • Partager sur Twitter

          probleme fermeture 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