Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle infinie comment en sortir

programme qui demande l'age et qui soit portable

    14 juillet 2006 à 15:21:52

    ;):D rebonjour a tous voilà j'ai essayer le programme avec if et ca fonctionne au delà du fait qu'il faut réinitialiser a chaque fois la console pour rentrer un chiffre correct j'ai donc assayer avec while le problème c'est que je tombe dans les deux cas (soit entrez un nombre correct soit vous avez %ld ans) dans une boucle infinie et je ne vois pas comment en sortir mais trèves de bavardages voici le tit programme ,;

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




    int main(int argc, char *argv[])
    {

      long age = 0; // On initialise la variable à 0
     
    printf("Quel age avez-vous ? ");


      scanf("%ld", &age); // On demande d'entrer l'age avec scanf 

     while(age==0)
     { printf("entrez un chiffre correct\n");
     scanf("%ld",age);
    }
    while (age!=0)
    { printf("vous avez %ld ans", age);
    }
    system("PAUSE");
    return 0;
    }
    quelqu'un aurait une idée merveilleuse pour se sortir de ce pétrin....?????? merci a tous et bon code!!!!!!!!!!
    • Partager sur Facebook
    • Partager sur Twitter
      14 juillet 2006 à 15:28:05

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


      int main(int argc, char *argv[])
      {
          long age = 0; // On initialise la variable à 0
          printf("Quel age avez-vous ? ");
          scanf("%ld", &age); // On demande d'entrer l'age avec scanf
          while(!age)
          {
              printf("entrez un chiffre correct : ");
              scanf("%ld",&age);
          }
          printf("vous avez %ld ans\n", age);
          system("PAUSE");
          return 0;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2006 à 16:01:03

        :euh::euh: excuse moi mais ton code ne fonctionne pas mieux je rentre quand m^me dans une boucle infinie si je rentre du caractère txte par ex alors comment faire....???? merci de ton aide et a vous tous merci et excellent code a toutes et tous!!!! :-°
        • Partager sur Facebook
        • Partager sur Twitter
          14 juillet 2006 à 16:11:53

          Voilà un code, je ne suis pas sûr à 100% qu'il fonctionne ...
          int main(int argc, char *argv[])
          {

            long age = 0; // On initialise la variable à 0
            int continuer =1;
           
          while(continuer)
          {
           
            printf("\nQuel age avez-vous ? ");


            scanf("%ld", &age); // On demande d'entrer l'age avec scanf

              if(age==0)
              {
                        printf("entrez un chiffre correct\n");
                       
              }
             else
             {
                        printf("vous avez %ld ans", age);
                        continuer =0;
             }
          }
          system("PAUSE");
          return 0;
          }


          Explication: La problème viens du scanf() dans le while. Tu as oublié un &.
          Voilà voilà, j'espère ne pas avoir dit de bêtise. Bonne journée.
          • Partager sur Facebook
          • Partager sur Twitter
            15 juillet 2006 à 16:12:00

            ;);) merci bcp mais je ne sors de toute facon pas de la boucle infinie je remet mon code pour qui aurait l'idée de comment s'en sortir de cette s*¨¨%+#ée boucle infinie le voici;

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




            int main(int argc, char *argv[])
            {

              long age = 0; // On initialise la variable à 0
             
            printf("Quel age avez-vous ? ");


              scanf("%ld", &age); // On demande d'entrer l'age avec scanf

            while(age==0)//c'est ici qu'on rentre dans la boucle infinie
             { printf("entrez un chiffre correct\n");
             scanf("%ld",&age);
            }
            { printf("vous avez %ld ans\n", age);
            }
            system("PAUSE");
            return 0;
            }
            merci pour votre aide si précieuse a savoir comment avec un while ne pas être dans une boucle infinie.....merci chaudement!!!! et bon code a toutes et tous!!!! :-°
            • Partager sur Facebook
            • Partager sur Twitter
              15 juillet 2006 à 16:16:27

              Bah... Il suffit de comprendre le fonctoinnement de scanf pour ne pas rentrer dans une "boucle infinie".
              Tu y rentre quand l'utilisateur tape un lettre non ? Et bien, dans ce cas scanf ne fait aucune affectation et laisse la lettre dans le buffer. Il faut donc l'en retirer, par exemple en utilisant getchar(). Je te laisse réfléchir à la manière d'implémenter une fonction permettant de vider les buffer de cette manière...

              Et bon courage pour la suite !
              • Partager sur Facebook
              • Partager sur Twitter
                15 juillet 2006 à 16:21:09

                :p:( excuse moi mais je n'ai pas ton niveau je n'ai rien compris a ta solution ni comment y arriver d'ailleurs si tu peux être plus explicite mais merci quand même mais quelqu'un aurait-il la solution a cet épineux problème merci bcp!!!!!!!e t b on c od e a tous!!!!! :-°^^
                • Partager sur Facebook
                • Partager sur Twitter
                  15 juillet 2006 à 18:00:29


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




                  int main(int argc, char *argv[])
                  {

                      long age = 0; // On initialise la variable à 0

                      printf("Quel age avez-vous ? \n");

                      do
                      {
                          printf("N'oubliez pas d'entrer un chiffre correct\n");
                          scanf("%ld", &age);
                      } while(age <= 0);

                      printf("vous avez %ld ans\n", age);

                      return 0;
                  }


                  N'oublie pas le system("PAUSE") sous Dev.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 juillet 2006 à 18:15:57

                    :euh::( rien a faire lorsque on tape du texte par ex on rentre dans la boucle "n'oubliez pas de rentrez un chiffre correct" voici le code en guise d'exemple;


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




                    int main(int argc, char *argv[])
                    {

                        long age = 0; // On initialise la variable à 0

                        printf("Quel age avez-vous ? \n");

                        do
                        {
                            printf("N'oubliez pas d'entrer un chiffre correct\n");/*on rentre dans une boucle infinie*/
                            scanf("%ld", &age);
                        } while(age <= 0);

                        printf("vous avez %ld ans\n", age);
                    system("PAUSE");
                        return 0;
                    }
                    quelqu'un pour m'aider a sortir de cet épineux problème (sans getchar()) merci bcp et très bon code a tous!!! :-°:-°
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 juillet 2006 à 18:34:53

                      Attends, ça a marché pour moi... bien sûr si tu veux rentrer des lettres ça marchera pas.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 juillet 2006 à 18:38:39

                        :p justement je veux rentrez des lettres aussi on sait jamais je suis très très con alors faut plusieurs essais pour que je comprenne il faut donc que le programme meréinvite a taper un nombre voilà et ce sans boucle infinie.....merci a tous!!!!! :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 juillet 2006 à 18:59:31

                          Là je peux pas t'aider. Désolé.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 juillet 2006 à 11:25:58

                            :p:D personne pour m'aider a sortir de cette boucle infine sans utiliser de getchar il doit bien y avoir moyen non??????? merci pour votre aide si précieuse et bon code a tous!!!! ^^:-°
                            • Partager sur Facebook
                            • Partager sur Twitter

                            boucle infinie comment en sortir

                            × 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