Pages : 1
#1 Le 29/12/2009, à 14:05
- polov
[RESOLU] Problème dans mon code
Bonjour à tous,
Sur le net, j'ai récupéré le code source d'un TD d'informatique où le but et de rajouter un compteur au code. J'ai réussi sauf que lorsque je demande à l'ordinateur d'afficher le nombre de coups, pour le premier essai il affiche "1 coups". J'ai donc corriger ma faute en réécrivant le code. Le voici:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0, compteur = 1;
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("Choisissez un nombre entre 1 et 100\n");
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
{
if (compteur = 1)
printf("%d coup\n", compteur = 1);
compteur++;
else (compteur >= 2)
printf("%d coups\n", compteur);
compteur++;
}
// 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);
}
Voila à la ligne "if (compteur......)..." mon code est faux . Voici ce que gcc me renvoit
:
main.c: In function ‘main’:
main.c:40: erreur: ‘else’ without a previous ‘if’
main.c:41: erreur: expected ‘;’ before ‘printf’
Si vous avez la réponse merci de me la communiquer.
Dernière modification par polov (Le 29/12/2009, à 14:53)
"Je suis ce que je suis grâce à ce que nous sommes tous" Ubuntu
Hors ligne
#2 Le 29/12/2009, à 14:08
- slasher-fun
Re : [RESOLU] Problème dans mon code
Bonjour,
if (compteur = 1)
printf("%d coup\n", compteur = 1);
compteur++;
Deux erreurs ici :
* compteur = 1 va attribuer 1 à la valeur compteur. Non seulement le test sera toujours vrai, mais en plus il changera la valeur de ton compteur
* Pas d'accolades après ton if, donc seule la ligne suivante est prise en compte dans l'exécution conditionnelle. Une ligne se trouve alors avant le else, qui ne dépend plus du if précédent.
Hors ligne
#3 Le 29/12/2009, à 14:12
- polov
Re : [RESOLU] Problème dans mon code
Ok. Merci beaucoup.
Etant débutant même grand débutant que dois-je changer car je ne comprend pas tout ce que tu as dit
"Je suis ce que je suis grâce à ce que nous sommes tous" Ubuntu
Hors ligne
#4 Le 29/12/2009, à 14:37
- polov
Re : [RESOLU] Problème dans mon code
J'ai réécris mon code du moins je l'ai un peu changé et j'ai toujours une erreur. Le voici:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
int nombreMystere = 0, nombreEntre = 0, compteur = 1 ;
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 */
printf("Choisissez un nombre entre 1 et 100\n");
do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);
{
if (compteur == 1)
{
printf("%d coup\n", compteur);
compteur++;
}
else (compteur >= 2)
{
printf("%d coups\n", compteur);
compteur++;
}
}
// 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);
}
Voici le message d'erreur de GCC:
In function ‘main’:
main.c:42: erreur: expected ‘;’ before ‘{’ token
La ligne 42 est celle de la condition "Else".
Dernière modification par polov (Le 29/12/2009, à 14:40)
"Je suis ce que je suis grâce à ce que nous sommes tous" Ubuntu
Hors ligne
#5 Le 29/12/2009, à 14:48
- slasher-fun
Re : [RESOLU] Problème dans mon code
else ne prend pas de condition. Si tu veux en mettre une, c'est un "else if".
Hors ligne
#6 Le 29/12/2009, à 14:51
- Teofifil
Re : [RESOLU] Problème dans mon code
Bonjour
A la place de :
else (compteur >= 2)
essaie
else if(compteur >= 2){}
ou
else
{
if(compteur >= 2){}
else {}
}
Il manquait juste le if. (Je ne me rappelle plus très bien pour le elsif).
Hors ligne
#7 Le 29/12/2009, à 14:52
- polov
Re : [RESOLU] Problème dans mon code
Merci mille fois
J'ai enfin résolu le problème qui devait, certe être simple pour vous, mais dur pour moi.
"Je suis ce que je suis grâce à ce que nous sommes tous" Ubuntu
Hors ligne