Correction de code en C (facile)

Fermé
N4PS73R - 14 mai 2010 à 22:14
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 14 mai 2010 à 22:37
Bonjour,

Je suis débutant en- C et je suis le tuto pour apprendre à programmer en C sur le site (siteduzero.com), ils proposent de créer un jeu en mode console qui selectionne un nombre au hasard, et vous devez trouver ce nombre, le programme vous guide en disant "C'est plus" ou "C'est moins"... Seulement, j'ai essayer d'y implementer un code permettant de creer un compteur d'essais, mais je ne sais pas pourquoi, cela m'indique une erreur...
Voici mon code :

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


int main ( int argc, char** argv )
{
    int nombreMystere = 0, nombreEntre = 0, nombreDeCoups = 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
    {
        // 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");
		    nombreDeCoups = nombreDeCoups + 1;
	else if (nombreMystere < nombreEntre)
            printf("C'est moins !\n\n");
		    nombreDeCoups = nombreDeCoups + 1;
	else
            printf ("Bravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", &nombreDeCoups);
    } while (nombreEntre != nombreMystere);
	
}


Merci d'avance pour votre aide...
Florian

A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
14 mai 2010 à 22:37
Bonjour,
Le problème vient du fait que vous avez oublié des accolades.
Par exemple :
if(condition) 
   instruction1;
   instruction2;

sera différent de :
if(condition) {
  instruction1;
  instruction2;
}

Lorsque tu as plusieurs instructions dans ton if, il faut mettre des accolades. Sinon seule la première sera conditionnelle. La seconde sera exécutée dans tous les cas.

Cdlt,
0