Partage
  • Partager sur Facebook
  • Partager sur Twitter

Le jeu du Plus ou Moins

1er TP de C

    29 avril 2006 à 16:25:37

    Bonjour a tous voila mon soucis lorsque je compile avec Dev pour créer un mode soit un joueur soit deux joueurs (c'est le premier TP du cours de M@teo21), j'ai ce message d'erreur:

    Citation : Pas de titre

    syntax error at end of input

    </span>


    J'ai beau relire mon code impossible de trouver le soucis, quelqu'un peut m'aider please ?

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

    int main ( int argc, char** argv )
    {
    {
        long nombreMystere = 0, nombreEntre = 0, nbEntre =0;
        const long MAX = 100, MIN = 1;
        long compteur = 0, tentative =0;
        long choix = 0, nbJoueurs = 0, nbHasard =0;
       
        while (choix <2)
        {
             
    printf(" Bienvenue voulez vous jouer tout seul ou a deux ?\n\n");
    printf("1. Un joueur\n");
    printf("2. Deux joueurs\n\n");

    if (nbJoueurs <2)
    {

        // Génération du nombre aléatoire

        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

        // La boucle du programme. Elle se répète tant que l'utilisateurn'a pas trouvé le nombre mystère


        do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);
            tentative++; // L'incrémentation ici, permet de comptabiliser le nombre de coup

            // On compare le nombre entré avec le nombre mystère

            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
                printf ("Bravo, vous avez trouve le nombre mystere qui etait %ld en %ld coups !!!\n\n",nombreMystere, tentative); // On indique le nombre de coups qu'a mis le joueur pour trouver
        } while (nombreEntre != nombreMystere);
    }
         
         else if (nbJoueurs =2)
         
         {
             
             printf("L'un des deux joueurs tape un nombre au hasard\n\n");
             scanf ("%ld", &nbHasard);
             
             do
             {
                   printf("Quel est le nombre qui vient d'etre taper ?\n");
                   scanf("%ld", &nbEntre);
                   tentative++;
                   
                   if (nbHasard < nbEntre)
                   {
                                printf("C'est moins !");
                   }
                   else if (nbHasard > nbEntre)
                   {
                        printf("C'est plus !");
                        }
                        else
                        {
                            printf ("Bravo vous avez trouver le nombre mystere qui etait %ld en %ld coups", nbHasard, tentative);
                            }
                       
                             
       
        printf("Vous voulez vous rejouer ou arreter ?\n\n");
        printf("1. Rejouer\n");
        printf("2. Arreter\n\n");
        scanf ("%ld", &choix);
        printf("\n");
       
        if ( choix<2)
        {
             printf("Bonne chance pour cette nouvelle partie\n\n");
             }
             else
             {
                  printf("Aurevoir et a bientot\n\n");
                  }
                                                                                                                                                                                                                 
                 
             
                           
                                       

        system("PAUSE");
        }
    • Partager sur Facebook
    • Partager sur Twitter
      29 avril 2006 à 16:31:05

      Tu ouvre 2 fois la balise après
      int main ( int argc, char** argv )
      , au début.
      Et tu n'as pas mis :
      return = 0;
      à la fin.
      Je ne suis pas trop fort. Il n'y as peut être pas que ces 2 erreurs.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        29 avril 2006 à 16:32:07

        Non, ca ne change rien, je ne vois pas ce que c'est non plus :colere2:

        Il manque la condition pour le seconde
        do {} while()
        • Partager sur Facebook
        • Partager sur Twitter
          29 avril 2006 à 17:33:33

          Alors....

          * Il manque un return 0;
          * Tu as oublié un scanf lorsque tu demandes le nombre de joueurs
          * Il manque la boucle lorsqu'il y a deux joueurs
          * Lorsqu'il y a une seule commande après un if ou un else, ne met pas d'accolade, ca raccourcit le code
          if (tralalala)
          tralalalala

          et non
          if (tralalalalala)
          {
              tralalala
          }

          * C'est moi ou tu ne demandes pour rejouer que si le nombre de joueurs est égal à 1?
          * syntax error at end of input signifie qu'il y a une erreur d'accolade, (normbre impair donc au moins une accolade non fermée dans le code)
          • Partager sur Facebook
          • Partager sur Twitter
            29 avril 2006 à 17:47:39

            D'accord merci je vais re travailler la dessus en suivant vos conseils et je vais voir si ca marche, je vous tiens au courant ;)
            • Partager sur Facebook
            • Partager sur Twitter
              29 avril 2006 à 17:51:47

              eh bien tu fermes pas 4 '{' o_O
              • Partager sur Facebook
              • Partager sur Twitter
                29 avril 2006 à 19:55:57

                Bon impossible de faire marcher ce code j'ai toujours le même probléme a la fin, c'est énervant pour des acollades .. si quelqu'un voit la solution n'hesitez pas :D
                • Partager sur Facebook
                • Partager sur Twitter
                  29 avril 2006 à 20:11:33

                  Le problème dans ton code est comme l'a dit N1gHtm@r3, c'est que tu as fait plein de petites erreurs.
                  Ensuite pour les accolades c'est simple. Tu comptes le nombre d'accolades ouvertes et fermées et tu compares les deux. Puis tu complètes.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Le jeu du Plus ou Moins

                  × 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