Probleme dans mon programme
Résolu
farreneit
Messages postés
282
Date d'inscription
Statut
Membre
Dernière intervention
-
farreneit Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
farreneit Messages postés 282 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai mon programme qui me fais chercher un nombre.
J'ai voulu rajouté une boucle pour demander de rejouer mais cela ne marche pas.
Aidez moi s'il vous plait.
Le programme :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombre = 0;
const int MAX = 2, MIN = 2;
int reponse = 0, oui = oui;
do
{
// 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'utilisateur n'a pas trouvé le nombre mystère */
do
{
// On demande le nombre
printf("Trouve le nombre ! ");
scanf("%d", &nombre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombre)
printf("C'est moins !\n\n");
else
printf ("Bravo, t'as trouve le nombre !!!\n\n");
} while (nombre != nombreMystere);
printf("Tu veux rejouer ?\n");
scanf("%d", &reponse);
} while (reponse != oui);
return 0;
}
Cordialement,
farreneit
PS: pour essayé de trouvé l'erreur en évitant de recherché le nombre a chaque fois j'ai mis qu'il soit entre 2 et 2. C'est donc 2.
J'ai mon programme qui me fais chercher un nombre.
J'ai voulu rajouté une boucle pour demander de rejouer mais cela ne marche pas.
Aidez moi s'il vous plait.
Le programme :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombre = 0;
const int MAX = 2, MIN = 2;
int reponse = 0, oui = oui;
do
{
// 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'utilisateur n'a pas trouvé le nombre mystère */
do
{
// On demande le nombre
printf("Trouve le nombre ! ");
scanf("%d", &nombre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombre)
printf("C'est moins !\n\n");
else
printf ("Bravo, t'as trouve le nombre !!!\n\n");
} while (nombre != nombreMystere);
printf("Tu veux rejouer ?\n");
scanf("%d", &reponse);
} while (reponse != oui);
return 0;
}
Cordialement,
farreneit
PS: pour essayé de trouvé l'erreur en évitant de recherché le nombre a chaque fois j'ai mis qu'il soit entre 2 et 2. C'est donc 2.
A voir également:
- Probleme dans mon programme
- Programme demarrage windows - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
3 réponses
Bonjour,
srand(time(NULL));
A n'appeler qu'une seule fois. Il faut donc le sortir de la boucle do while.
int reponse = 0, oui = oui;
scanf("%d", &reponse);
} while (reponse != oui);
Tu définies la variable oui que tu initialises à oui. Donc la variable est mal définie : la valeur peut être n'importe quoi.
L'utilisateur rentre une valeur pour la variable reponse. Et la boucle continuera tant qu'il ne tape pas la valeur de la variable oui que tu ne connais pas.
Fais plutôt : int oui = 1;
...
printf("Tu veux rejouer ? Tape 1 pour Oui\n");
scanf("%d", &reponse);
} while (reponse == oui);
Note : la prochaine fois, mets ton code entre les balises "code" (bouton <> à droite du bouton S "souligné)) plutôt qu'en italique.
Cdlt,
srand(time(NULL));
A n'appeler qu'une seule fois. Il faut donc le sortir de la boucle do while.
int reponse = 0, oui = oui;
scanf("%d", &reponse);
} while (reponse != oui);
Tu définies la variable oui que tu initialises à oui. Donc la variable est mal définie : la valeur peut être n'importe quoi.
L'utilisateur rentre une valeur pour la variable reponse. Et la boucle continuera tant qu'il ne tape pas la valeur de la variable oui que tu ne connais pas.
Fais plutôt : int oui = 1;
...
printf("Tu veux rejouer ? Tape 1 pour Oui\n");
scanf("%d", &reponse);
} while (reponse == oui);
Note : la prochaine fois, mets ton code entre les balises "code" (bouton <> à droite du bouton S "souligné)) plutôt qu'en italique.
Cdlt,
Cela a marché.
Mais maintenant j'aimerai laissé l'utilisateur choisir son niveau, mais il me dis que je redefinnis MIN et MAX :
Cordialement,
farreneit
Mais maintenant j'aimerai laissé l'utilisateur choisir son niveau, mais il me dis que je redefinnis MIN et MAX :
#include <stdio.h> #include <stdlib.h> #include <time.h> int main ( int argc, char** argv ) { // Génération du nombre aléatoire srand(time(NULL)); do { int nombreMystere = 0, nombre = 0; int niveau = 0; printf("Bienvenue, choisit ton niveau : \n - 1 pour facile\n - 2 pour moyen\n - 3 pour difficile\n\n"); scanf("%d", &niveau); if (niveau == 1); const int MAX = 0, MIN = 100; else if (niveau == 2); const int MAX = 0, MIN = 1000; else (niveau == 3); const int MAX = 0, MIN = 10000; int reponse = 0, oui = 1; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; /* La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère */ do { // On demande le nombre printf("Trouve le nombre ! "); scanf("%d", &nombre); // On compare le nombre entré avec le nombre mystère if (nombreMystere > nombre) printf("C'est plus !\n\n"); else if (nombreMystere < nombre) printf("C'est moins !\n\n"); else printf ("Bravo, t'as trouve le nombre !!!\n\n"); } while (nombre != nombreMystere); printf("Tapez 1 pour rejouer"); scanf("%d", &reponse); } while (reponse == oui); return 0; }
Cordialement,
farreneit
j'ai essayé ceci mais en vain ...
#include <stdio.h> #include <stdlib.h> #include <time.h> int main ( int argc, char** argv ) { // Génération du nombre aléatoire const int MAX = 100, MIN = 0; srand(time(NULL)); do { int nombreMystere = 0, nombre = 0; int niveau = 0; int reponse = 0, oui = 1; int min = 0, max = 0; printf("Bienvenue, choisit ton niveau : \n - 1 pour facile\n - 2 pour moyen\n - 3 pour difficile\n\n"); scanf("%d", &niveau); if (niveau == 1) min = 0, max = 100; else if (niveau == 2) min = 0, max = 1000; else (niveau == 3) min = 0, max = 1000; nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; /* La boucle du programme. Elle se répète tant que l'utilisateur n'a pas trouvé le nombre mystère */ do { // On demande le nombre printf("Trouve le nombre ! "); scanf("%d", &nombre); // On compare le nombre entré avec le nombre mystère if (nombreMystere > nombre) printf("C'est plus !\n\n"); else if (nombreMystere < nombre) printf("C'est moins !\n\n"); else printf ("Bravo, t'as trouve le nombre !!!\n\n"); } while (nombre != nombreMystere); printf("Tapez 1 pour rejouer"); scanf("%d", &reponse); } while (reponse == oui); return 0; }