Problème langage C

Utilisateur anonyme -  
UbuntuPR Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   -
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!
A voir également:

4 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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
Utilisateur anonyme
 
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
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
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
Utilisateur anonyme
 
AH merci je vais tester :)
0
Utilisateur anonyme
 
Alors j'ai testé la le nombre s'enregistre mais ca plante aussitot après
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
tu as vu qu'il y avait un autre scanf après celui-là où tu as oublié le "&" ?
0
Utilisateur anonyme
 
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
Utilisateur anonyme
 
Comment faire,?
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
je te retourne la question : comment veux-tu que ce jeu se joue à 2 joueurs ?

il y a plusieurs possibilités.
0
UbuntuPR Messages postés 89 Date d'inscription   Statut Membre Dernière intervention   10
 
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