Partage
  • Partager sur Facebook
  • Partager sur Twitter

1er tp

gros problemme

    14 avril 2006 à 10:36:08

    Bonjour à tous
    j'ai réalisé le 1er tp et je me suis dit, pourquoi ne pas réaliser les amélioration. Je me suis donc lancé dans la programation de quelques unes de celles-çi. Mais là, gros problemme, mon programme plante à chaque fois que je le lance. Est-ce-que vous pouriez y jeter un petit coup d'oeil svp et me dire ce qui ne va pas ??
    Voici mon code :

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

    int main()
    {
        long nombredejoueurs = 0, nombredecoups = 0, nombremystere = 0, nombreentre = 0, continuerpartie = 1;
        printf("combien y a t il de joueurs, 1 ou 2, :  ");
        scanf("%ld", &nombredejoueurs);
        if (nombredejoueurs==2)
        {
            do
            {
                printf("rentre le nombre mystere : ");
                scanf("%ld", &nombremystere);
                printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                do
                {
                    printf("quel est ce nombre ? ");
                    scanf("%ld", &nombreentre);
                    nombredecoups++;
                    if (nombremystere < nombreentre)
                        printf("c'est moins\n\n");
                    else if (nombremystere > nombreentre)
                        printf("c'est plus\n\n");
                    else
                        printf("bravo, tu a gagne en %ld coups", nombredecoups);
                } while (nombremystere != nombreentre);
                printf("vous voulez rejouer ? tape 1 pour oui et 0 pour non");
                scanf("%ld", &continuerpartie);
            } while (continuerpartie != 0);
        }
        else if (nombredejoueurs==1)
        {
            do
            {
                const long MAX = 100, MIN = 1;
                srand(time(NULL));
                nombremystere = (rand() % (MAX - MIN + 1)) + MIN;
                do
                {
                    printf("quel est ce nombre ? ");
                    scanf("%ld", &nombreentre);
                    nombredecoups++;
                    if (nombremystere < nombreentre)
                        printf("c'est moins\n\n");
                    else if (nombremystere > nombreentre)
                        printf("c'est plus\n\n");
                    else
                        printf("bravo, tu es le meilleur, tu a gagne en %ld coups\n\n", nombredecoups);
                } while (nombremystere != nombreentre);
                printf("tu ve rejouer ? tape 1 pour oui et 0 pour non : ");
                scanf("%ld", continuerpartie);
                } while (continuerpartie != 0);
        }
        return 0;
    }

    Merci d'avance !!
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 avril 2006 à 11:10:07

      Moi je n'ai aucun problèmes...
      • Partager sur Facebook
      • Partager sur Twitter
        14 avril 2006 à 11:23:50

        Citation : acieroid

        moi je n'ai aucun probleme


        moi window m'affiche "...ex a rencontré un probleme et doit fermr" a chaque fois que j'essaie de lancer mon programme !
        • Partager sur Facebook
        • Partager sur Twitter
          14 avril 2006 à 11:31:21

          C'est bien la 5ème fois qu'on voit une faute de ce genre sur le forum, il manque un & dans un scanf, dans le mode un joueur, au moment où l'on redemande pour recommencer ;)
          • Partager sur Facebook
          • Partager sur Twitter
            14 avril 2006 à 11:35:36

            Citation : N1gHTm@r3

            il manque un scanf


            sa marche toujours pas
            • Partager sur Facebook
            • Partager sur Twitter
              14 avril 2006 à 11:38:22

              scanf("%ld", continuerpartie);


              Ennemy Down.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                14 avril 2006 à 11:43:03

                j ai une question :
                quand ce jeu se joue a 2 joueurs
                y a t il une autre façon pour cacher le nombre mystere que de sauter 10 lignes .
                • Partager sur Facebook
                • Partager sur Twitter
                  14 avril 2006 à 11:50:01

                  j'ai ajouté le & dans le denier scanf du mode 1 joueur mais sa plante toujours au tout début du programme quand je fais choisir entre le mode 1 joueur et le mode 2 joueur . vous voyez quelque chose qui va pas ??
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    14 avril 2006 à 11:58:33

                    Citation : 2eREP

                    j ai une question :
                    quand ce jeu se joue a 2 joueurs
                    y a t il une autre façon pour cacher le nombre mystere que de sauter 10 lignes .


                    en faisant un gotoxy(x, y), et en changeant le nombre tapé par un # par exemple, mais pour cela il faut linker la lib conio, pour plus d'infos : http://perso.numericable.fr/~fvirtman/info/tuto/B_01_conio.cpp
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 avril 2006 à 12:13:04

                      T'es sur que t'as bien rajouté le & ?

                      (celui de nombredejoueurs)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 avril 2006 à 12:14:53

                        Déjà faut prévoir un else parce que si l'utilsateur fait chier son monde et rentre 3 comme joueurs ca va planter royalement aussi :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          14 avril 2006 à 12:31:58

                          voila j'ai corrigé ce ke vous m'avez dit mais sa marche toujours pas
                          #include <stdio.h>
                          #include <stdlib.h>
                          #include <time.h>

                          int main()
                          {
                              long nombredejoueurs = 0, nombredecoups = 0, nombremystere = 0, nombreentre = 0, continuerpartie = 1;
                              printf("combien y a t il de joueurs, 1 ou 2, :  ");
                              scanf("%ld", &nombredejoueurs);
                              if (nombredejoueurs >= 2)
                              {
                                  do
                                  {
                                      printf("rentre le nombre mystere : ");
                                      scanf("%ld", &nombremystere);
                                      printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
                                      do
                                      {
                                          printf("quel est ce nombre ? ");
                                          scanf("%ld", &nombreentre);
                                          nombredecoups++;
                                          if (nombremystere < nombreentre)
                                              printf("c'est moins\n\n");
                                          else if (nombremystere > nombreentre)
                                              printf("c'est plus\n\n");
                                          else
                                              printf("bravo, tu a gagne en %ld coups", nombredecoups);
                                      } while (nombremystere != nombreentre);
                                      printf("vous voulez rejouer ? tape 1 pour oui et 0 pour non");
                                      scanf("%ld", &continuerpartie);
                                  } while (continuerpartie != 0);
                              }
                              else if (nombredejoueurs==1)
                              {
                                  do
                                  {
                                      const long MAX = 100, MIN = 1;
                                      srand(time(NULL));
                                      nombremystere = (rand() % (MAX - MIN + 1)) + MIN;
                                      do
                                      {
                                          printf("quel est ce nombre ? ");
                                          scanf("%ld", &nombreentre);
                                          nombredecoups++;
                                          if (nombremystere < nombreentre)
                                              printf("c'est moins\n\n");
                                          else if (nombremystere > nombreentre)
                                              printf("c'est plus\n\n");
                                          else
                                              printf("bravo, tu es le meilleur, tu a gagne en %ld coups\n\n", nombredecoups);
                                      } while (nombremystere != nombreentre);
                                      printf("tu ve rejouer ? tape 1 pour oui et 0 pour non : ");
                                      scanf("%ld", &continuerpartie);
                                      } while (continuerpartie != 0);
                              }
                              return 0;
                          }
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 avril 2006 à 12:33:52

                            T'as bien recompilé et tout ?
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Anonyme
                              14 avril 2006 à 13:09:02

                              Ca m'est déja arrivé d'avoir des erreur sans raisons, ou le programme qui se lance, et qui s'arrete sans que le code n'ai de problèmes, si tu est sous dev-cpp, refait un nouveau projet et met le code, ca devrait marcher
                              • Partager sur Facebook
                              • Partager sur Twitter
                                14 avril 2006 à 13:31:32

                                Citation : allblack


                                <...>gros problemme, mon programme plante à chaque fois que je le lance.


                                    long continuerpartie = 1;
                                <...>
                                            scanf("%ld", continuerpartie);



                                main.c:53: warning: format argument is not a pointer (arg 2)

                                Erreur récurrente.

                                Avec scanf(), "%ld" attend l'adresse d'un long. Tu lui donnes la valeur d'un long. Il manque un '&' ...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Music only !
                                  14 avril 2006 à 13:45:06

                                  Citation : ed

                                  avec un scanf <...> il faut mettre &


                                  sur le 2ieme code je l'ai rajouté. si tu a vu une deuxieme fois cette erreur precise mois l'endroit car là je ne vois pas du tout ou.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    14 avril 2006 à 14:14:50

                                    Bah il faut préciser des options de compilation pour avoir les erreurs, comme par exemple "-Wall".
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      14 avril 2006 à 14:20:14

                                      Déjà mets mon else on sait jamais si l'utilisateur dérapé il préférerait éviter les messages d'erruers de windows et les plantages de prgramme :-°
                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      1er tp

                                      × 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