C'est juste que je comprend pas comment faire : Faites un compteur de "coups". Ce compteur devra être une variable que vous incrémenterez à chaque fois que vous passez dans la boucle. Lorsque l'utilisateur a trouvé le nombre mystère, vous lui direz "Bravo, vous avez trouvé le nombre mystère en 8 coups"
Il n'y a pas de structure quand il explique et ça fait que je ne sais pas ou l'écrire! Quelqu'un peu me donner sa version de ça:
-------------
Réalisé par M@teo21, pour les cours du Site du Zér0
siteduzero.com (cours de programmation en C / C++ pour débutants)
/* 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("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombreEntre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombreEntre)
printf("C'est moins !\n\n");
else
printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
} while (nombreEntre != nombreMystere);
Tu trouves qu'il n'y a pas de structure? Il donne carrément la réponse quand on analyse bien et qu'on y réfléchis...
On va décortiquer un peu plus. Si tu veux un compteur, il faut une variable qui stock le résultat. Tu vas donc créer une variable compteur et l'initialiser à 0.
Ensuite, tu sais que chaque fois que le joueur va entrer un nombre, il aura tenté sa chance une fois de plus. Donc, dans la boucle principale de jeu, il faut incrémenter la variable compteur (compteur = compteur +1 ou encore compteur++). Dans la logique humaine, on dira qu'il a joué une fois après qu'il ait entré un nombre. Pourquoi ne pas le placer juste après la récupération du nombre alors?
Finalement, lorsque le joueur a trouvé le nombre, on quitte la boucle principale. Dans ce cas, le jeu est fini et on affiche au joueur le nombre de coups dont il a eu besoin. Il suffit donc d'afficher un texte dans lequel tu affiche la variable compteur.
Je veux dire juste après le scanf("%d", &nombreEntre); Mais c'est une suggestion qui paraît la plus logique pour un humain. Pour l'ordinateur, que tu le mette la ou juste avant, ça revient au même. Tout ce qui compte, c'est que si tu passes dans la boucle, il faut incrémenter le compteur.
Avec tout ça, tu as la réponse à ce que tu cherches. La prochaine étape serait le code qui va avec, ce que je cherche à éviter pour l'instant
salut
le message d'erreur est clair, tu n'as pas déclaré la variable compteur; voici une façon de faire, réfléchis avant de voir la réponse:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0,compteur=0;
const int MAX = 100, MIN = 1;
// 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
{
compteur++;
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
// On compare le nombre entré avec le nombre mystère
if (nombreMystere > nombreEntre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombreEntre)
printf("C'est moins !\n\n");
else
printf ("Bravo, vous avez trouve le nombre mystere en %d coups!!!\n\n",compteur);
}
while (nombreEntre != nombreMystere);
return 0;
}
Hahahhaha...quel erreur stupide. Merci. : int nombreMystere = 0, nombreEntre = 0; compteur = 0;
Ça c'était mon erreur...au lieu de la virgule, le point virgule!
Je rencontre un problème lorsque je veux faire ce compteur. Je débute complètement et je ne vois pas mon erreur.
Le résultat que me donne le rappel du compteur est toujours un chiffre du genre :
"Bravo, vous avez trouve en 6356732 coups ! Process returned 0 (0x0) execution time : 10.649 s Press any key to continue."
Voici mon code :
#include <stdio.h> #include <stdlib.h>
#include <time.h>
int main()
{const int MAX = 100, MIN = 1, nombre= 0; int nb_coups = 0; srand(time(NULL)); int nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
while(nombre != nombreMystere) { printf("quel est le nombre ?") scanf("%d", &nombre); if (nombre < nombreMystere) { printf("C'est plus !\n"); } else if (nombre > nombreMystere) { printf("C'est moins !\n"); } nb_coups++; }
printf("Bravo, vous avez trouve en %d coups !"), nb_coups; return 0; }
Pour poster du code, clique sur </> et choisis c++ comme langage.
Pour ton erreur: relis bien ton printf() qui affiche le nombre de coups.... et non, il n'y a aucune faute syntaxique à cette ligne (parfois vicieux, le C, n'est-ce pas....)
Edgar;
PS: c'est bien d'avoir fait une recherche sur le forum, mais la prochaine fois, pour poser ta question (après recherche, hein), crée ton topic plutôt que d'aller déterrer un topic de 2009
EDIT: modifie également les options de compilation pour obtenir un maximum de warnings....
EDIT2: j'ai oublié: indente convenablement ton code stp.
- Edité par edgarjacobs 2 octobre 2016 à 13:29:55
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
@AbibWabi Bonjour, merci de ne pas déterrer d'ancien sujet résolu. Créer le votre dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (un bonjour ou des salutations à la communauté et se termine par des remerciements par avance pour les futures réponses) un descriptif de votre problème et le code que vous avez écrit inséré sur le forum avec l'outil d'intégration de code soit le bouton code </>.
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ferme ce sujet. En cas de désaccord, me contacter par MP.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent