Problème de code source ?

Résolu/Fermé
axelfl Messages postés 13 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 16 novembre 2017 - 25 oct. 2011 à 13:43
axelfl Messages postés 13 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 16 novembre 2017 - 25 oct. 2011 à 14:13
Bonjour,



mon problème est le suivant :
J'ai essayé de faire un petit c'est plus / c'est moins, aucun message d'erreur est pourtant quand de compile et que j'essaye de le démarrer, il me dit "JEU.exe a cessé de fonctionner.
Voici le code source :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>

int main()
{
int tentatives = 0, rejouer = 0, MIN = 1, MAX = 0, nombreMystere = 0, nombreEntre = 0, difficulte = 0;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
do
{
do
{
printf("Veuillez choisir votre niveau de difficulte :");
scanf("%d", &difficulte);
if (difficulte == 1)
{
printf("Vous avez choisi le niveau de difficulte 1.");
MAX = 100;
}
else if (difficulte == 2)
{
printf("Vous avez choisi le niveau de difficulte 2.");
MAX = 1000;
}
else if (difficulte == 3)
{
printf("Vous avez choisi le niveau de difficulte 3.");
MAX = 10000;
}
else
{
printf("Vous avez entre une valeur invalide ...");
}
} while (difficulte == 0 || difficulte > 3);
printf("A present, que le jeu commence !");
do
{
printf("Quel est le nombre ?");
scanf("%d", nombreEntre);
if (nombreEntre > nombreMystere)
{
printf("C'est moins !");
tentatives++;
}
else if (nombreEntre < nombreMystere)
{
printf("C'est plus !");
tentatives++;
}
else
{
printf("Felicitations, vous avez trouve le nombre mystere en %d tentatives !", tentatives);
}
}while (nombreEntre != nombreMystere);
printf("Voulez-vous rejouer ?");
printf("1 - Oui");
printf("2 - Non");
scanf("%d", &rejouer);
}while (rejouer == 1);
system("pause");
}


Merci d'avance et en espérant que vous puissiez m'aider, axelfl
A voir également:

4 réponses

lucas-84 Messages postés 35 Date d'inscription dimanche 17 octobre 2010 Statut Membre Dernière intervention 7 décembre 2011 6
25 oct. 2011 à 14:02
Manque un esperluette dans un de tes scanf.
1
axelfl Messages postés 13 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 16 novembre 2017
25 oct. 2011 à 13:55
J'ai oublié de vous préciser qu'il est codé en C.
De plus, à l'origine il marchait bien, mais l'erreur est arrivée quand j'ai voulu ajouter les améliorations comme les niveaux de difficulté et la fonction rejouer que le problème est arrivé.
Merci d'avance.
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
25 oct. 2011 à 14:03
Bonjour,

Tu initialises ton nombreMystere avant de connaître le niveau de difficulté.
Du coup, tu le fais avec MAX = 0.
Donc
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
donne nombreMystere = (rand() % 0) + 1

Modulo 0, j'ai un peu du mal à me le représenter. À mon avis, l'ordinateur aussi :p

Xavier
0
axelfl Messages postés 13 Date d'inscription mardi 25 octobre 2011 Statut Membre Dernière intervention 16 novembre 2017
25 oct. 2011 à 14:13
Merci beaucoup pour vos réponses ! En effet, je n'ai eu qu'à déplacer la génération de MAX et le problème était réglé ! Plus qu'à ajouter quelques \n par ci par là ... ^^ Merci beaucoup, axelfl.
0