Aide mini programme code blocks

Résolu/Fermé
aherod Messages postés 3 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 11 décembre 2010 - 8 déc. 2010 à 17:06
aherod Messages postés 3 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 11 décembre 2010 - 11 déc. 2010 à 11:55
Bonjour à tous!

Je me suis recemment mis à l'apprentissage du language C à l'aide du tuto de m@teo21 sur le site du zéro( https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c

J'en suit arrivé a un TP ou il faut deviner un nombre préalablement choisi par l'ordinateur or mon programme ne marche pas:
quand j'entre un nombre, l'ordinateur répond plusieurs fois "c'est moins !" puis "c'est plus !" jusqu'a que le programme plante!

J'ai cherché partout mais ne trouve pas de solution. Voici le programme:

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

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

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

while (nombreMystere != nombreEntre)
{
printf("Quel est le nombre Mystere ?\n");
scanf("%d\n\n", &nombreEntre);

if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n");
}
else if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n");
}
else
{
printf("Bravo, vous avez trouvé le nombre mystere!\n\n");
}
}
return 0;
}








Merci de votre aide!
A voir également:

4 réponses

lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
9 déc. 2010 à 12:02
Deja tu n'a pas besoin du troisième else, en effet lorsque le nombre que tu aura entré sera egal au nombre mystere alors il sortira de la boucle donc printf("Bravo, vous avez trouvé le nombre mystere!\n\n"); peut etre mis avant le return 0. Ensuite au lieu de faire const int MAX = 100, MIN = 1; tu peut ecrire #define MAX 100 et #define MIN 1 juste en dessous de tes include, ça permet de definir des constantes.
Affiche ton nombre mystere et vois ce que ça fait quand tu le trouve.
0
aherod Messages postés 3 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 11 décembre 2010
9 déc. 2010 à 13:55
Salut,

J'ai mis ce que tu m'as dis et cela donne maintenant:


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
#define MIN 1

int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0;

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

while (nombreMystere != nombreEntre)
{
printf("Quel est le nombre Mystere ?\n");
scanf("%d\n\n", &nombreEntre);

if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n");
}
else if (nombreMystere > nombreEntre)
{
printf("C'est plus !\n");
}
}
printf("Bravo, vous avez trouvé le nombre mystere!\n\n");

return 0;
}

Mais cela n'a rien changé et ca ne marche toujours pas :(
0
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
10 déc. 2010 à 14:54
enlève les \n dans ton scanf. T'a essayé de voir si en affichant le nombre mystère et en le trouvant dés le debut cela fonctionne ?
0
aherod Messages postés 3 Date d'inscription mercredi 8 décembre 2010 Statut Membre Dernière intervention 11 décembre 2010
11 déc. 2010 à 11:55
Effectivement j'ai enlevé les \n dans le scanf et ca marche! Je ne comprend pas pourquoi...

Pour laisser les sauts de ligne j'ai créé un printf.

Merci beaucoup de ton aide!
0