Partage
  • Partager sur Facebook
  • Partager sur Twitter

le tit programme ne donne pas le nombre d'erreurs corrects

    16 juillet 2006 à 12:01:14

    ;):D bonjour a toutes et tous voici le tit programme qui ne donne pas le nombre d'erreurs corrects comment y remedier je vous le donne a vos esprit plein de sagacité;

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

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

      long age = 0; // On initialise la variable à 0
     int i=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);
               getchar();
               i++;
               }
               if (i>1)
               {
               printf(" ah enfin!!!! vous avez %ld ans\n",age);
               printf(" vous avez fait %d erreur, vous etes pas doue", i);
               getchar();
               }
               
               else
               {
     printf("vous avez %ld ans donc\n", age);
    }

    system("PAUSE");
    return 0;
    }
    en fait il donne le nombre de fois qu'apparait "entrez un nombre correct" et comme avec getchar() c'est plusieurs fois par coup d'essai il se plante dans le nombre réel d'essai quelqu'un pourrait-il me donner la solution de cet epineux problème mille merci et bon code a tous!!!! ^^:-°
    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2006 à 12:20:42

      Le seul problème de ton code, c'est qu'il n'est pas bien incrémenté :

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

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

        long age = 0; // On initialise la variable à 0
       int i=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);
          getchar();
          i++;
      }
      if (i>1)
      {
          printf(" ah enfin!!!! vous avez %ld ans\n",age);
          printf(" vous avez fait %d erreur, vous etes pas doue", i);
          getchar();
      }

      else
      {
          printf("vous avez %ld ans donc\n", age);
      }

      system("PAUSE");
      return 0;
      }


      • Partager sur Facebook
      • Partager sur Twitter
        16 juillet 2006 à 12:24:44

        Citation : oussama1305

        Le seul problème de ton code, c'est qu'il n'est pas bien incrémenté :



        Ne voulais tu pas plutôt dire indenté ? Auquel cas le tiens n'est pas forcément le must non plus
        • Partager sur Facebook
        • Partager sur Twitter
          16 juillet 2006 à 12:46:31

          ;):D merci oussama mais le tiens ne fonctionne pas mieux il compte les "entrez un chiffre correct" et pas les inputs réels donc je repose ma question quelqu'un pourrait me dire comment faire pour que le tit programme compte correctement je le redonne en guise d'exemple,;

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

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

            long age = 0; // On initialise la variable à 0
           int i=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);
           getchar();
                     i++;
                     }
                     if (i>1)
                     {
                     printf(" ah enfin!!!! vous avez %ld ans\n",age);
                     printf(" vous avez fait %d erreur, vous etes pas doue", i);
                     getchar();
                     }
                     
                     else
                     {
           printf("vous avez %ld ans donc\n", age);
          }

          system("PAUSE");
          return 0;
          }
          voilà si quelqu'un a une idée pour que ce fichu programme calcule correctement le nombre d'erreurs il est le bienvenu sinon le bienheureux merci encore et bon code!!!!!!!!!!! ^^:-°
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2006 à 14:31:38

            Si j'ai bien compris, tu veux que l'utilisateur entre son âge, et tu appelles "chiffre correct", un chiffre différent de 0 ?

            Voilà ce qui illustre ce que j'ai cru comprendre :

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

            /* Attention aux fautes de frappe :
              "printf(" vous avez fait %d erreur, "  ==> Manque un "l"
            */


            int main(int argc, char *argv[])
            {
               long age = 0, i = 0;
               
               while (age <= 0 || age > 150)  // Soit il est pas née, soit il est dans sa tombe
               {
                     printf ("Quel age avez-vous ? ");
                     scanf("%ld", &age);
                     i++;
               }
               
               if (i > 1)
                 printf ("Ha enfin !! vous avez %ld ans.\nVous avez fait %ld erreur(s), vous n'etes pas doue \n", age, i - 1);
                 
              /* J'indique d'afficher la variable i - 1, car lorsque l'utilisateur entre un age correcte,
                 cette saisie ne doit pas être prise en compte
              */

             
               else
                printf ("Vous avez donc %ld ans \n", age);
               
              getchar();
              return 0;
            }
            • Partager sur Facebook
            • Partager sur Twitter
              16 juillet 2006 à 15:01:41

              :p:-° ton programme ne marche ou fonctionne pas...tralala de plus je ne suis pas sur que je me suis bien expliqué je voudrais simplement que le programmme compte sans faire de faute le nombre d'essai incorrects pour rentrer la saisie "age" :-° ca ne doit pas être si dur a faire mais moi je ne vois pas comment voilà si quelqu'un de bien intentionné peut m'aider ce serait avec joie que j'accepterai son aide (pffffff que de mots pour ne rien dire) :o allez une aide salvatrice svp!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ^^^^
              • Partager sur Facebook
              • Partager sur Twitter
                16 juillet 2006 à 15:05:10

                Citation : coyotte49

                /* Attention aux fautes de frappe :
                  "printf(" vous avez fait %d erreur, "  ==> Manque un "l"
                */

                Pour ton information, un %d est valable comme un %ld .
                • Partager sur Facebook
                • Partager sur Twitter
                  16 juillet 2006 à 15:12:17

                  sauf qu'un
                  %d => int
                  %ld => long int
                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 juillet 2006 à 15:17:11

                    :p ces discussions ne m'apprennent rien du comment résoudre mon programme alors a savoir si c'est %dou %ld je m'en fiche pas mal bien qu'interessant tout compte fait mais hors de propos ici présent merci pour votre aide !!!!!!!! :D allllllllllez soyez sympa!!! :-°:euh:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 juillet 2006 à 16:30:48

                      Oups, désolé pour la conerie :p J'utilise tout le temps cout (c'est tellement plus simple :-° )

                      hermeneute > Le programme que j'ai posté tout à l'heure ne convient pas ? Il te faut pas quoi exactement ?
                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 juillet 2006 à 16:43:03

                        ;):p merci coyotte de répondre mais ton programme foire il affiche directement "vous avez 0 ans" et puis basta sinon je pense que l'idée est bonne mais a revoir si tu sais donner un programme qui fonctionne et qui donne le nombre correct d'erreurs a l'essai je serai vraiment hyper contend sinon bon code a toi et a tout les autres!!!!!!! :-°^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          16 juillet 2006 à 17:15:58

                          Oups, mes excuses. J'ai pas testé le programme, c'est pour ca. C'est pas ma condition du while qui est foireuse. Voilà, j'ai édité le post avec le code, il marche maintenant.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            16 juillet 2006 à 17:35:45

                            :p bah oui il fonctionne si on introduit un chiffre plausible mais si on introduit du texte par ex on tombe dans une boucle infinie et rebelote le problème est a nouveau posé mais merci quand même bon code a toi!!!!!!!! :-°^^
                            • Partager sur Facebook
                            • Partager sur Twitter

                            le tit programme ne donne pas le nombre d'erreurs corrects

                            × 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