Problème langage C

Bonjour,

J'ai encore un problème dans un de mes codes que j'ai fait. Pouvez-vous me dire ce qui ne va pas svp ? Merci d'avance
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0, nombre_de_coups = 1, reponse =1, nombre_de_joueurs =0;
const int MAX = 100, MIN = 1;

srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("Bonjour! Nous allons jouer au jeu de + et du -");
printf("Combien de joueurs vont jouer ? Nombre max autorise : 2\n");
scanf("%d", &nombre_de_joueurs);
if (nombre_de_joueurs== 1)
{

do
{
printf("Tres bien vous avez choisi le mode 1 joueur\n");
printf("Dis moi un nombre\n");
scanf("%d", &nombreEntre);
if (nombreEntre < nombreMystere)
{
printf("C'est plus!\n");
nombre_de_coups ++;
}
else if (nombreEntre > nombreMystere)
{
printf ("C'est moins!\n");
nombre_de_coups ++;
}
else
{
printf("Bravo! T'as trouvé en %d fois, nom d'une Roberta!", nombre_de_coups);
printf("Tu veux recommencer ? Tapes 1 pour oui \n Sinon quittes!");
scanf ("%d", &reponse);
}
} while (nombreEntre != nombreMystere || reponse ==1);

}
else if (nombre_de_joueurs ==2)
do
{

printf("Mode 2 joueurs \n");
printf("Le nombre est compris entre 0 et 100\n");
printf("Joueur 1 à toi! Propose un nombre\n");
scanf("%d", nombreEntre);
if (nombreEntre < nombreMystere)
{
printf("C'est plus\n");
nombre_de_coups++;
}
else if (nombreEntre > nombreMystere)
{
printf("C'est moins.\n");
nombre_de_coups++;
}
else
{
printf("Bravo! Tu as trouvé en %d coups\n", nombre_de_coups);
printf("Joueur maintenant! Pareil! Choisis un nombre!");
scanf("%d", nombreEntre);
}

if (nombreEntre < nombreMystere)
{
printf("C'est plus\n");
nombre_de_coups++;
}
else if (nombreEntre > nombreMystere)
{
printf("C'est moins.\n");
nombre_de_coups++;
}
else
{
printf("Bravo! Tu as trouvé en %d coups\n", nombre_de_coups);
printf("Veux-tu refaire une partie?\n");
printf("Pour oui tapes 1 sinon quittes!\n");
scanf("%d", &reponse);
}
} while (nombreEntre != nombreMystere || reponse ==1);

return 0;
}



Même si ce sont des professionels,Que ce soit à n'importe quel âge, si on est motivé, on peut faire des ravages, et tous les dépasser!

4 réponses

  1. salut

    1) envoie ton code avec les balises "code" du forum, comme ça les espaces de début restent et c'est plus lisible

    2) peux-tu nous dire directement quel est le problème ?si erreur de compilation, le message d'erreur par exemple ?
    0
    1. déjà aucun message d'erreur ca complie normallement. Des que je choisis 1 joueur ca fonctionne ensuite si je ferme que je redemarre et que je chosis le mode 2 joueurs et ben la ca met Propose un nombre enfin ca va jusqu'à propose un nombre etla il y a le curseur qui clignote pour que j'entre le chiffre puis dès que j'appuie sur entrer j'ai un mesage windows qui dit que le programme a eu un probleme ert doit fermer et ca s'arrete brisquement au deuxieme joueur.
      Tiens voilà le script en code :
       
      #include <stdio.h> 
      #include <stdlib.h> 
      #include <time.h> 
      
      
      int main ( int argc, char** argv ) 
      { 
          int nombreMystere = 0, nombreEntre = 0, nombre_de_coups = 1, reponse =1, nombre_de_joueurs =0; 
          const int MAX = 100, MIN = 1; 
      
          srand(time(NULL)); 
          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; 
              printf("Bonjour! Nous allons jouer au jeu de + et du -"); 
              printf("Combien de joueurs vont jouer ? Nombre max autorise : 2\n"); 
              scanf("%d", &nombre_de_joueurs); 
      if (nombre_de_joueurs== 1) 
      { 
      
          do 
          { 
              printf("Tres bien vous avez choisi le mode 1 joueur\n"); 
             printf("Dis moi un nombre\n"); 
              scanf("%d", &nombreEntre); 
              if (nombreEntre < nombreMystere) 
              { 
              printf("C'est plus!\n"); 
              nombre_de_coups ++; 
              } 
              else if (nombreEntre > nombreMystere) 
              { 
              printf ("C'est moins!\n"); 
              nombre_de_coups ++; 
              } 
              else 
              { 
          printf("Bravo! T'as trouvé en %d fois, nom d'une Roberta!", nombre_de_coups); 
          printf("Tu veux recommencer ? Tapes 1 pour oui \n Sinon quittes!"); 
          scanf ("%d", &reponse); 
              } 
      } while (nombreEntre != nombreMystere || reponse ==1); 
      
      } 
      else if (nombre_de_joueurs ==2) 
          do 
          { 
      
          printf("Mode 2 joueurs \n"); 
          printf("Le nombre est compris entre 0 et 100\n"); 
          printf("Joueur 1 à toi! Propose un nombre\n"); 
          scanf("%d", nombreEntre); 
          if (nombreEntre < nombreMystere) 
          { 
              printf("C'est plus\n"); 
              nombre_de_coups++; 
          } 
          else if (nombreEntre > nombreMystere) 
          { 
              printf("C'est moins.\n"); 
              nombre_de_coups++; 
          } 
          else 
          { 
              printf("Bravo! Tu as trouvé en %d coups\n", nombre_de_coups); 
              printf("Joueur maintenant! Pareil! Choisis un nombre!"); 
              scanf("%d", nombreEntre); 
          } 
      
              if (nombreEntre < nombreMystere) 
          { 
              printf("C'est plus\n"); 
              nombre_de_coups++; 
          } 
          else if (nombreEntre > nombreMystere) 
          { 
              printf("C'est moins.\n"); 
              nombre_de_coups++; 
          } 
          else 
          { 
              printf("Bravo! Tu as trouvé en %d coups\n", nombre_de_coups); 
              printf("Veux-tu refaire une partie?\n"); 
              printf("Pour oui tapes 1 sinon quittes!\n"); 
              scanf("%d", &reponse); 
          } 
      } while (nombreEntre != nombreMystere || reponse ==1); 
      
         return 0; 
      } 
      

      Même si ce sont des professionels,Que ce soit à n'importe quel âge, si on est motivé, on peut faire des ravages, et tous les dépasser!
      0
      1. ahhh avec tes précisions j'ai trouvé.
        erreur minuscule, mais terrible de conséquences ^^ :

        scanf("%d", nombreEntre);

        tu as oublié le " & " sur nombreEntre dans la partie pour 2 joueurs.
        0
      2. AH merci je vais tester :)
        0
    2. Alors j'ai testé la le nombre s'enregistre mais ca plante aussitot après
      0
      1. tu as vu qu'il y avait un autre scanf après celui-là où tu as oublié le "&" ?
        0
      2. Ah c'ets bon merci ca marche...Mais le probleme est que malheuresement il ya un probleme : A cause de la boucle la console m'écrit joueur 1 à toi lorsque c'est le deuxieme joueur..Il faut resoudre ca^^
        0
      3. Comment faire,?
        0
      4. je te retourne la question : comment veux-tu que ce jeu se joue à 2 joueurs ?

        il y a plusieurs possibilités.
        0
    3. Il manque un "&" a un des tes scanf effectivement et si tu veux que ça affiche les bon joueurs initialise une variable numero_joueur par exemple, une autre coup_deux_joueurs qui quand son modulo de deux est nul (
      coup_deux_joueurs%2
      ) c'est au deuxième joueur de joué, et si il est différent de zéro c'est au premier.

      ton code devrait ressembler à ça :
      on initialise les variables :
      int nombreMystere = 0, nombreEntre = 0, nombre_de_coups = 1, reponse =1, nombre_de_joueurs =0,numero_joueurs=1,coups_deux_joueurs=1;


      ensuite le code du mode deux joueurs :
      else if (nombre_de_joueurs ==2)
      do
      {
      
      printf("Mode 2 joueurs \n");
      printf("Le nombre est compris entre 0 et 100\n");
      printf("Joueur %i à toi! Propose un nombre\n",numero_joueurs);
      scanf("%d", &nombreEntre);
      coups_deux_joueurs++;
      if(coups_deux_joueurs%2 ==0)
      {
      	numero_joueurs = 2;
      }
      else
      {
      	numero_joueurs = 1;
      }
      if (nombreEntre < nombreMystere)
      {
      printf("C'est plus\n");
      nombre_de_coups++;
      }
      else if (nombreEntre > nombreMystere)
      {
      printf("C'est moins.\n");
      nombre_de_coups++;
      }
      else
      {
      printf("Bravo! Tu as trouvé en %d coups\n", nombre_de_coups);
      printf("Joueur maintenant! Pareil! Choisis un nombre!");
      scanf("%d", nombreEntre);
      }
      } while (nombreEntre != nombreMystere || reponse ==1);
      
      return 0;


      Ensuite tu as trop de chose dans ton
      do{}
      en effet tu devrais sortir
      printf("Mode 2 joueurs \n");
      printf("Le nombre est compris entre 0 et 100\n");
      pour que ce soit plus agréable à lire.

      en espérant t'avoir aidé.
      0