Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP 1

Un petit problème

    22 décembre 2005 à 13:43:58

    Voila j'ai fait le TP de la fin du chapitre I et je suis en train d'essayer d'intégrer une fonction pour recommencer mais ca ne marche pas :( . Voila le code :

    Citation : Mon code C

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

    int main(int argc, char *argv[])
    {
    do
    {
    long nombreMystere =0, nombreEntre=0, compteur=0, continuePartie=0;
    const long MAX = 100, MIN = 1;
    srand(time(NULL));
    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    printf ("==Jeu du plus ou du moins==\n");
    printf ("==Cree par Shaq==\n\n");
    printf ("Regle du jeu : l'ordinateur a choisi un nombre mystere entre 1 et 100 \net vous devez le retrouver ! Pour cela tapez votre nombre et l'ordinateur vous \ndira si c'est plus petit ou plus grand que le nombre mystere !\n\nBonne chance !\n\n");
    do
    {
    printf ("Veuillez entrer votre nombre : ");
    scanf ("%ld", &nombreEntre);
    if (nombreMystere > nombreEntre)
    {
    printf ("C'est plus grand !\n\n");
    compteur++;
    }
    else if (nombreEntre > nombreMystere)
    {
    printf ("C'est plus petit !\n\n");
    compteur++;
    }
    else
    {
    printf ("Bravo vous avez trouve le nombre mystere en %ld coups!\n\n", compteur);
    printf ("Voulez-vous arreter de jouer (tapez 0) ou recommencer (tapez 1)?");
    scanf ("%ld", &continuePartie);
    }
    }while (nombreEntre != nombreMystere);
    }while (continuePartie=1)
    system("PAUSE");

    return 0;
    }



    Le dernier while c'est à dire "}while (continuePartie=1) " dev c++ me dit que continuePartie , n'existe pas alors que je l'ai créé au début ! o_O

    Merci de m'aider en m'indiquant ce qui ne va pas et ce serai gentil de retaper tout le code ou au mins la partie qui va pas ! ;)

    Shaq
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      22 décembre 2005 à 13:48:31

      Je pense que tu doit declarer ta variable avant le debut de ta boucle :
      do
      {

      Et tu a oublier un ; dans ton dernier while ;)
      • Partager sur Facebook
      • Partager sur Twitter
        22 décembre 2005 à 13:51:49

        Question : y a pas deux == dans les conditions en C ??
        • Partager sur Facebook
        • Partager sur Twitter
          22 décembre 2005 à 13:52:20

          sa existe :
          <code type="c"></code>

          sa serait bien de le métre.

          et éspace plus ton texte ausi
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            22 décembre 2005 à 13:53:04

            Si il me semble qu'il y a 2 == , (sur a 80% :) )
            • Partager sur Facebook
            • Partager sur Twitter
              22 décembre 2005 à 14:00:38

              il manque un point virgule a while (continuePartie=1(;) ici
              • Partager sur Facebook
              • Partager sur Twitter
                22 décembre 2005 à 19:41:39

                Je confirme qu'il faut deux = ce qui donne == ;)
                Mais, de plus, je ne crois pas qu'il faut un point-virgule après un while.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 décembre 2005 à 19:51:04

                  apres un while pas besoin de point virgule

                  apres un do.....while il en faut un je crois(85%)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 décembre 2005 à 20:00:40

                    syntaxe while :


                    while (condition)
                    {
                         // Opération à effectuer
                    }


                    syntaxe do ... while :


                    do
                    {
                         // Opération à effectuer
                    }
                    while (condition);


                    sans oublier le ; avec le while du do while

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 décembre 2005 à 12:37:31

                      Ah bon, mais avouez que ça prête à confusion :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 décembre 2005 à 16:35:43

                        Franchement, il faut mieux préférer

                        while ( condition )
                        {
                        patati;
                        }

                        car le code est plus lisible.

                        De plus si la condition est fausse, avec le do ... while, le programme éxécutera quand-même la boucle une fois, ce qui n'est pas le cas avec le while.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 décembre 2005 à 16:38:52

                          Citation : DieHermie

                          Franchement, il faut mieux préférer

                          while ( condition )
                          {
                          patati;
                          }

                          car le code est plus lisible.

                          De plus si la condition est fausse, avec le do ... while, le programme éxécutera quand-même la boucle une fois, ce qui n'est pas le cas avec le while.



                          Exactement ce que je pensais lors du TP mais si la condition est vrai... ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                            27 décembre 2005 à 11:56:24

                            Pour répondre à la question de shaq : je n'avais pas vue la vulgaire erreur !!
                            Il faut toujours déclarer ses variables et constantes au début de ses fonctions, nous sommes en C pas en c++.

                            Il y a peut-être d'autres erreurs mais vire d'abord celle-là.

                            MODIFICATION après post :

                            le while est faut :
                            while (continuePartie==1);

                            voici le prog :
                            #include <stdio.h>
                            #include <stdlib.h>
                            #include <time.h>

                            int main(int argc, char *argv[])
                            {
                                long nombreMystere =0, nombreEntre=0, compteur=0, continuePartie=0;
                                const long MAX = 100, MIN = 1;

                                do
                                {
                                    srand(time(NULL));
                                    nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
                                    printf ("==Jeu du plus ou du moins==\n");
                                    printf ("==Cree par Shaq==\n\n");
                                    printf ("Regle du jeu : l'ordinateur a choisi un nombre mystere entre 1 et 100 \net vous devez le retrouver ! Pour cela tapez votre nombre et l'ordinateur vous \ndira si c'est plus petit ou plus grand que le nombre mystere !\n\nBonne chance !\n\n");

                                    do
                                    {
                                        printf ("Veuillez entrer votre nombre : ");
                                        scanf ("%ld", &nombreEntre);

                                        if (nombreMystere > nombreEntre)
                                        {
                                            printf ("C'est plus grand !\n\n");
                                            compteur++;
                                        }

                                        else if (nombreEntre > nombreMystere)
                                        {
                                            printf ("C'est plus petit !\n\n");
                                            compteur++;
                                        }

                                        else
                                        {
                                            printf ("Bravo vous avez trouve le nombre mystere en %ld coups!\n\n", compteur);
                                            printf ("Voulez-vous arreter de jouer (tapez 0) ou recommencer (tapez 1)?");
                                            scanf ("%ld", &continuePartie);
                                        }
                                    }while (nombreEntre != nombreMystere);

                                }while (continuePartie==1);

                                system("PAUSE");

                                return 0;
                            }


                            et ça marche à merveille (sauf qu'il n'y a pas de contrôle d'ereur.)

                            Elle n'est pas belle la vie ?
                            • Partager sur Facebook
                            • Partager sur Twitter

                            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