Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme avec les boucles

je m'exerce un peu

    18 décembre 2005 à 23:29:29

    Salut, je m'exerce un peu avec le c++ et le souci c'est que ma boucle ne s'arrete pas lorsque la personne tape bien son âge. Ou est l'erreur ?


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

    int main(int argc, char *argv[])
    {
      long age = 0;
      printf ("Quel age avez vous ? ");
      scanf ("%ld", &age);
     
      long quel_age = 0;
      while (quel_age = age)
    {
      printf ("Redites-moi votre age : ");
      scanf ("%ld", &quel_age);
    }
      system("PAUSE");     
      return 0;
    }


    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2005 à 23:33:07


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

      int main(int argc, char *argv[])
      {
        long age = 0;
        printf ("Quel age avez vous ? ");
        scanf ("%ld", &age);
       
        long quel_age = 0;
        while (quel_age = age)
        {
          printf ("Redites-moi votre age : ");
          scanf ("%ld", &quel_age);
        }
        system("PAUSE");     
        return 0;
      }



      Ca n'a pas l'air comme ca, mais
      while (quel_age = age)
      c'est une boucle infinie !!

      il faut mettre 2 signes = pour faire un test !!

      actuelement, tant que le programme ne voit pas de problemes à écrire le contenue de age dans quel age, il execute l'interieur de la boucle.

      avec l'oubli des ; , confondre = et == c'est l'accident bete :(
      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2005 à 23:35:36

        while(variable == variable1)


        et non

        while(variable = variable1)


        Ensuite, même avec ça, ca n'ira par car il ne rentrera jamais dans ta boucle.

        La bout de code exact serait:


        while(quel_age != age)




        • Partager sur Facebook
        • Partager sur Twitter
          18 décembre 2005 à 23:37:06

          j'ai mis 2 "==" mais maintenant il saute l'étape "Redites moi votre age"
          • Partager sur Facebook
          • Partager sur Twitter
            18 décembre 2005 à 23:37:23

            Regarde ma réponse, j'ai été plus rapide que toi ;)
            • Partager sur Facebook
            • Partager sur Twitter
              18 décembre 2005 à 23:38:11

              Merci beaucoup Seb087 ca marche ;) merci
              • Partager sur Facebook
              • Partager sur Twitter
                18 décembre 2005 à 23:39:02

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

                int main(int argc, char *argv[])
                {
                long age = 0;
                printf ("Quel age avez vous ? ");
                scanf ("%ld", &age);

                long quel_age = age;
                while (quel_age == age)
                {
                printf ("Redites-moi votre age : ");
                scanf ("%ld", &quel_age);
                }
                system("PAUSE");
                return 0;
                }


                Il y'a pas beaucoups de sens dans ce programme mais bon...
                • Partager sur Facebook
                • Partager sur Twitter
                  18 décembre 2005 à 23:39:03

                  des que tu entres un age different de 0, la condition devuent fausse, et l'interieur du while n'est pas éxécuté.

                  Citation : Seb087

                  il ne rentrera jamais dans ta boucle.

                  La bout de code exact serait:


                  while(quel_age != age)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Probleme avec les boucles

                  × 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