Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec tp 1

Demander si on veux continuer

Sujet résolu
    23 décembre 2005 à 17:25:42

    Salut, je voudrais que a la fin de chaques parties on demande au joueur si il souhaite continuer ou non la partie j'ai donc inséré un printf et un scanf a la fin du code mais ca ne fonctionne pas ca ne me demande rien pourquoi?


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

    int main(int argc, char *argv[])
    {
        // Introduction
        printf ("********* Voici mon premier programme **********\n\n");
        printf ("********* On va commencer par un petit jeu *********\n\n");

        // Génération du nombre aléatoire
        long nombreMystere = 0, nombre1 = 0, compteur=0, partie=1;
        const long MAX = 100, MIN = 1;
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

        while (partie==1)
    {
        printf ("Voila j'ai choisi un nombre compris entre 1 et 100...\nMais quel est ce nombre ?\n");
       
       
        // Demmarage de la boucle do
        do
    { 
        printf ("Choisissez un nombre : ");
        scanf ("%ld", &nombre1);
       
        if (nombreMystere > nombre1)
        printf ("Le nombre mystere est plus grand\n\n");

       
        else if (nombreMystere < nombre1)
        printf ("Le nombre Mystere est plus petit\n\n");

       
        else
        printf ("B R A V O, vous avez gagne !!! \n\n");
       
    compteur++;
    }   while (nombre1 != nombreMystere && compteur < 10);
       
        if (compteur == 10)
    {   
        printf ("perdu! \n\n");
    }
        else
    {
    }
    } //fin boucle while du debut   


      printf ("On rejoue ? (1=oui ; 2=non)");
      scanf ("%ld", &partie);   
       
      system("PAUSE");     
      return 0;
    }

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      23 décembre 2005 à 17:34:40

      Je n'ai pas lu ton code, je te donne tout de suite la réponse :
      int continuer = 1;
      while (continuer)
      {
      //Code
      //...
      //...
      cout << "Desirez-vous continuer ?" << endl;
      cout << "Continuer ......1" << endl;
      cout << "Quitter ........0" << endl;
      cin >> continuer;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        23 décembre 2005 à 17:35:40

        Tu dois mettre le printf() et le scanf() dans la boucle pour que sa fonctionne, car sinon il demande bien la variable, mais hors de la boucle qui s'est deja terminer

        EDIT : chahine, c'est du C, pas du C++
        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2005 à 17:37:04

          oula pas trop vite moi je me limite aux cours de mateo je veux savoir ce que je fait or la je ne comprend rien... Merci quand même
          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2005 à 17:47:29

            Les fonctions cout et cin ne sont pas déjà du C ?!?!

            Elles sont tellement plus pratiques !
            • Partager sur Facebook
            • Partager sur Twitter
              23 décembre 2005 à 17:50:55

              ben je ne crois pas non ... Voici mon code corrigé mais il ya toujours un souci le joueur qui a demandé a rejouer n'a droit qu'a 1 coup avant que ca lui redemande si il souhaite rejouer...

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

              int main(int argc, char *argv[])
              {
                  // Introduction
                  printf ("********* Voici mon premier programme **********\n\n");
                  printf ("********* On va commencer par un petit jeu *********\n\n");

                  // Génération du nombre aléatoire
                  long nombreMystere = 0, nombre1 = 0, compteur=0, partie=1;
                  const long MAX = 100, MIN = 1;
                  srand(time(NULL));
                  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                  while (partie==1)
              {
                  printf ("Voila j'ai choisi un nombre compris entre 1 et 100...\nMais quel est ce nombre ?\n");
                 
                 
                  // Demmarage de la boucle do
                  do
              { 
                  printf ("Choisissez un nombre : ");
                  scanf ("%ld", &nombre1);
                 
                  if (nombreMystere > nombre1)
                  printf ("Le nombre mystere est plus grand\n\n");

                 
                  else if (nombreMystere < nombre1)
                  printf ("Le nombre Mystere est plus petit\n\n");

                 
                  else
                  printf ("B R A V O, vous avez gagne !!! \n\n");
                 
              compteur++;
              }   while (nombre1 != nombreMystere && compteur < 10);
                 
                  if (compteur == 10)
              {   
                  printf ("perdu! \n\n");
              }
                  else
              {
              }
                printf ("On rejoue ? (1=oui ; 2=non)");
                scanf ("%ld", &partie);
              } //fin boucle while du debut   


               
                 
                system("PAUSE");     
                return 0;
              }
              • Partager sur Facebook
              • Partager sur Twitter
                23 décembre 2005 à 18:00:49

                Car il faut réinitialiser les variables en début du while !
                • Partager sur Facebook
                • Partager sur Twitter
                  23 décembre 2005 à 18:02:20

                  Ben elle le sont non ?
                  // Génération du nombre aléatoire
                      long nombreMystere = 0, nombre1 = 0, compteur=0, partie=1;
                      const long MAX = 100, MIN = 1;
                      srand(time(NULL));
                      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                      while (partie==1)

                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 décembre 2005 à 18:09:10

                    Citation : Chahine

                    Les fonctions cout et cin ne sont pas déjà du C ?!?!

                    Elles sont tellement plus pratiques !



                    Les classes qui gérent les flux d'entrées/sorties (ios) et le tampons (streambuf) n'existent pas encore en C, et de même pour les d'entrée/sortie fichier (fstream) ^^

                    EDIT : pour scaryman, déclare tes variables dans la boucle while, ou alors reinitialise les dedans :
                    // Enleve les déclarations de variable ici
                        while (partie==1)
                            {
                                    long nombreMystere = 0, nombre1 = 0, compteur=0, partie=1;
                                    const long MAX = 100, MIN = 1;
                                    srand(time(NULL));
                                    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                                    printf ("Voila j'ai choisi un nombre compris entre 1 et 100...\nMais quel est ce nombre ?\n");

                                    // Ton code continue ici
                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 décembre 2005 à 19:44:53

                      Ca marche pas parceque si je ne déclare pas la variable "partie" ce ne marche pas... une autre erreur qui m'est indiqué si je laisse comme ca c'est "`time' undeclared (first use this function) "... Merci quand meme
                      • Partager sur Facebook
                      • Partager sur Twitter

                      Probleme avec tp 1

                      × 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