Partage
  • Partager sur Facebook
  • Partager sur Twitter

erreur : fermeture de mon programme

Sujet résolu
    17 avril 2006 à 18:46:23

    Bonjour à tous.
    J'essaye en ce moment de créer un petit programme pour m'entrainer à programme et dans ce programme, je demande sa moyenne à l'école (collège, lycée on s'en moque ;) ) à celui qui ouvre le programme et en fonction de ce que l'utilisateur marque, une phrase différentes devrait s'afficher à chaque fois.

    Je compile, j'ouvre mon programme, je tape un chiffre au hasard et un message d'erreur me dit qu'il y a eu un problème et que mon programme va être arrêté.

    Je ne trouve pas l'erreur dans mon code donc si vous pouviez me dire où elle se trouve. ;)

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

    int main(long argc, long *argv[])
    {
    long variable_test = 0;

         printf("Bonjour ! Travailles-tu bien au college ? Combien de moyenne as-tu ?");
         scanf("%ld\n", variable_test);
    if (variable_test == 0)
       printf ("Il faut que tu te remettes au travail !");
    else if (variable_test == 1)
    {
         printf ("Ta moyenne est très faible ! Ressaisis-toi !");
    }
    else if (variable_test == 2)
    {
         printf ("Ta moyenne est très faible ! Reprends-toi !");
    }
    else if (variable_test == 3)
    {
         printf ("Que fais-tu en cours pour avoir une moyenne pereille ?");
    }
    else if (variable_test == 4)
    {
         printf ("Mets toi au travail !");
    }
    else if (variable_test == 5)
    {
         printf ("Ta moyenne est très faible ! Ressaisis-toi !");
    }
    else if (variable_test == 6)
    {
         printf ("Travailles-tu en cours ?");
    }
    else if (variable_test == 7)
    {
         printf ("Tu peux encore te rattraper !");
    }
    else if (variable_test == 8)
    {
         printf ("Fais des efforts !");
    }
    else if (variable_test == 9)
    {
         printf ("Meme pas la moyenne, allez courage !");
    }
    else if (variable_test == 10)
    {
         printf ("Juste la moyenne !");
    }
    else if (variable_test == 11)
    {
         printf ("C'est moyen, tu peux faire mieux !");
    }
    else if (variable_test == 12)
    {
         printf ("Fais des efforts de travail");
    }
    else if (variable_test == 13)
    {
         printf ("Tu es capable de bien mieux !");
    }
    else if (variable_test == 14)
    {
         printf ("C'est bien !");
    }
    else if (variable_test == 15)
    {
         printf ("Très bonne moyenne");
    }
    else if (variable_test == 16)
    {
         printf ("Superbe moyenne ! FELICITATION !");
    }
    else if (variable_test == 17)
    {
         printf ("Excellent travail ! FELICITATION !");
    }
    else if (variable_test == 18)
    {
         printf ("Excellent trimestre ! FELICITATION !");
    }
    else if (variable_test == 19)
    {
         printf ("Que dire de mieux à part que c'est un excellent travail ?");
    }
    else if (variable_test == 20)
    {
         printf ("La perfection absolue !");
    }
    else
    {
         printf ("Euh, pourrais-tu me repeter ta moyenne ?");
    }
    system("PAUSE");
         return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      17 avril 2006 à 19:03:23

      Salut tu a oublier un & dans le scanf
      scanf("%ld\n", &variable_test);
      • Partager sur Facebook
      • Partager sur Twitter
        17 avril 2006 à 19:05:20

        et ne mais pas \n

        car c'est deja incorpore dans la fonction scanf
        • Partager sur Facebook
        • Partager sur Twitter
          17 avril 2006 à 19:33:25

          Bonjour!
          Pour t'éviter tout un code un peu "bourrin" composer de plein de "else if" , tu pourrais utiliser un switch cela sera plus agréable à programmer je trouve.

          @+
          • Partager sur Facebook
          • Partager sur Twitter
            17 avril 2006 à 20:10:39

            Ok merci beaucoup à tous ! :)
            • Partager sur Facebook
            • Partager sur Twitter
              17 avril 2006 à 22:58:16

              Citation : John Laury


              Je ne trouve pas l'erreur dans mon code donc si vous pouviez me dire où elle se trouve. ;)


              • Le prototype de main() est très faux...c'est int main(int argc, char *argv[])
              • scanf("%ld\n", variable_test); manque un &... Un '\n' en trop
              • Partager sur Facebook
              • Partager sur Twitter
              Music only !
                18 avril 2006 à 17:18:55

                Citation : -ed-

                Citation : John Laury


                Je ne trouve pas l'erreur dans mon code donc si vous pouviez me dire où elle se trouve. ;)


                • Le prototype de main() est très faux...c'est int main(int argc, char *argv[])


                A la rigueur, cela n'est pas très grave. que le "int" et le "char" soient remplacés par un "long", ça ne pose pas vraiment de problème.
                • Partager sur Facebook
                • Partager sur Twitter
                  18 avril 2006 à 17:38:52

                  Citation : John Laury

                  A la rigueur, cela n'est pas très grave. que le "int" et le "char" soient remplacés par un "long", ça ne pose pas vraiment de problème.


                  A part que le comportement est indéfini. Tout peux arriver... Tu programmes comme ça toi ? Rappelle moi de ne jamais t'embaucher...

                  (Ah ces jeunes qui n'ont pas connu le x86 en mode réel 16-bit)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Music only !
                    18 avril 2006 à 18:20:08

                    Citation : -ed-

                    (Ah ces jeunes qui n'ont pas connu le x86 en mode réel 16-bit)



                    C'est de l'assembleur ça ???
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 avril 2006 à 21:35:29

                      si tu a appris utilise plutôt un switch que des if, else ;)

                      et t'as oublié un & et ,t'as un \n en trop :) (je sais que tout le monde l'as dit mais pour une fois que j'avais trouvé l'erreur :p fallait que je le dise ^^ )
                      • Partager sur Facebook
                      • Partager sur Twitter
                        18 avril 2006 à 23:15:09

                        Citation : Honor

                        Citation : -ed-

                        (Ah ces jeunes qui n'ont pas connu le x86 en mode réel 16-bit)



                        C'est de l'assembleur ça ???


                        ??? Ca n'a aucun sens. L'assembleur est un langage de programmation comme un autre.

                        Je parle du C pur et dur sous MS-DOS (avec Borland C 3.1, par exemple, que j'ai anandonné à regret il y un an depuis que je suis sous XP... Un debugger qui ne plantait pas...)
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Music only !

                        erreur : fermeture de mon programme

                        × 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