Probleme dans mon programme
Résolu/Fermé
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
-
Modifié par farreneit le 9/06/2013 à 13:27
farreneit Messages postés 282 Date d'inscription jeudi 5 juillet 2012 Statut Membre Dernière intervention 13 janvier 2023 - 15 juin 2013 à 11:30
farreneit Messages postés 282 Date d'inscription jeudi 5 juillet 2012 Statut Membre Dernière intervention 13 janvier 2023 - 15 juin 2013 à 11:30
A voir également:
- Probleme dans mon programme
- Programme demarrage windows 10 - Guide
- Fichier ouvert dans un autre programme - Guide
- Programme démarrage windows 10 - Guide
- Desinstaller un programme - Guide
- Programme bonjour c'est quoi ✓ - Forum Logiciels
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
9 juin 2013 à 14:15
9 juin 2013 à 14:15
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,
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
10
9 juin 2013 à 14:56
9 juin 2013 à 14:56
Merci beaucoup et desole pour l'italique.
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
10
9 juin 2013 à 19:56
9 juin 2013 à 19:56
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
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
9 juin 2013 à 20:40
9 juin 2013 à 20:40
if (niveau == 1);
else if (...);
Pas de ; après les conditions. Sinon l'instruction suivante n'est pas conditionnée.
Tu devrais mieux définir une fois pour toute min et max :
int min, max; /*juste avant srand(...);*/
Et dans les if /else, tu mets min=...; max=...;
else if (...);
Pas de ; après les conditions. Sinon l'instruction suivante n'est pas conditionnée.
Tu devrais mieux définir une fois pour toute min et max :
int min, max; /*juste avant srand(...);*/
Et dans les if /else, tu mets min=...; max=...;
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
10
10 juin 2013 à 19:03
10 juin 2013 à 19:03
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; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
>
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
10 juin 2013 à 19:37
10 juin 2013 à 19:37
Tu as mis const int MIN... Cela veut dire que tu ne peux plys modifier la valeur. Utilise simplement : int min, max;
farreneit
Messages postés
282
Date d'inscription
jeudi 5 juillet 2012
Statut
Membre
Dernière intervention
13 janvier 2023
10
10 juin 2013 à 19:47
10 juin 2013 à 19:47
Il me dit : error: 'else' without a previous 'if'.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 836
10 juin 2013 à 20:35
10 juin 2013 à 20:35
else (niveau == 3)
Ca n'existe pas. Soit c'est else (sinon), soit c'est else if (niveau==3) (sinon si niveau vaut 3).
T'aurais pu le voir ;-)
Ca n'existe pas. Soit c'est else (sinon), soit c'est else if (niveau==3) (sinon si niveau vaut 3).
T'aurais pu le voir ;-)