Erreur variable non déclarée

Résolu/Fermé
evie57 Messages postés 3 Date d'inscription mercredi 8 janvier 2014 Statut Membre Dernière intervention 9 août 2014 - Modifié par evie57 le 8/01/2014 à 09:15
 Utilisateur anonyme - 8 janv. 2014 à 10:55
Bonjour,


Je débute en programmation avec C.
Sur un programme à priori simple de jeu de plus ou moins j'essaie de faire une boucle pour recommencer la partie (exo proposé par openclassroom)
Bref le souci est pas là :

Je voulais faire des conditions imbriquées déjà je sais pas si c'est possible (même si pas joli)
J'ai un message d'erreur de variable non déclarée alors qu'elle l'est dès la première ligne
Pouvez vous m'aider ???

L'erreur est en ligne 43 soit au dernier while

Voici mon programme :

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

int main ( int argc, char** argv )
{
do
{

int Choix=0;
printf("veux tu faire une partie\n");
printf("1: oui\n", "2:Non\n");
scanf("%d", &Choix);

int nombreMystere = 0, nombreEntre = 0;
const int MAX = 100, MIN = 1;

// Génération du nombre aléatoire
int Compteur =1 ;
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");
Compteur++ ;}
else if (nombreMystere < nombreEntre)
{printf("C'est moins !\n\n");
Compteur++ ;}
else
printf ("Bravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", Compteur);
} while (nombreEntre != nombreMystere);}
while (Choix);
return 0;
}

3 réponses

Utilisateur anonyme
8 janv. 2014 à 09:16
Bonjour

Ta variable Choix est déclarée à l'intérieur des accolades du do {... }.
Elle est locale à ce bloc, donc inconnue à l'extérieur. Au moment du while (Choix), elle est hors de portée.
Déclare-la AVANT le do, en laissant l'initialisation à 0 à l'intérieur si tu en as besoin à chaque boucle.
0
evie57 Messages postés 3 Date d'inscription mercredi 8 janvier 2014 Statut Membre Dernière intervention 9 août 2014
8 janv. 2014 à 09:21
Super !!!
Mon programme ne fonctionne pas trop comme je veux mais au moins ça c'est résolu !
Donc je ne peux pas faire de conditions imbriquées puisque la boucle était censée être la même et qu'il n'a pas pris ma variable.
Merci pour ta réponse je continue !
0
Utilisateur anonyme
8 janv. 2014 à 10:55
je ne peux pas faire de conditions imbriquées
Si, on peut faire des conditions imbriquées, mais je ne vois pas le rapport.
0