Probleme error 'variable' undeclared (first use in this fuction)

Fermé
RebeuDesBois Messages postés 1 Date d'inscription samedi 17 juin 2017 Statut Membre Dernière intervention 17 juin 2017 - 17 juin 2017 à 16:13
 Utilisateur anonyme - 18 juin 2017 à 06:54
Bonjour,
Je solicite votre aide, car je ne comprends le message d'erreur qui s'affiche je pense avoir bien declarer la variable mais le message d'erreur persiste. je suis sur que si l'IDE dit que je ne l'ai pas declarer alors c'est surement parceque je ne l'ai pas declarer mais je n'arrive pas a trouver d'ou vient le message d'erreur.
Voila mon code:

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

int main()
{
do
{
const int MIN = 1;
int compteur = 1;
int nbc = 0, nbm = 0; //nbc est le nombre choisi par l'utilisateur
int wait = 0;
int niveau = 0;
int autre = 0;
int MAX = 1;

do
{
printf("Quel mode de difficulte voulez vous?\n");
printf("1) Niveau facile (de 1 a 100)\n");
printf("2) Niveau Novice (de 1 a 1000)\n");
printf("3) Niveau expert (de 1 a 10000)\n");
scanf("%d", niveau);

if (niveau == 1)
{
MAX = 100;
}
else if (niveau == 2)
{
MAX = 1000;
}
else if (niveau == 3)
{
MAX = 10000;
}
else
{
printf("Veuillez ecrire 1 2 ou 3");
}

} while(niveau != 1 || niveau != 2 || niveau != 3);



srand(time(NULL));
nbm = (rand() % (MAX - MIN + 1))+ MIN; //nbm est le nombre mystere



while( nbc != nbm)
{

printf("Quel est le nombre? ");
scanf("%d", &nbc);
compteur++;

if (nbm > nbc)
{
printf("C'est plus!\n");
}

else if (nbm < nbc)
{
printf("C'est moins!\n");
}

else if (nbc > 100 || nbc < 1)
{
printf("Veuillez ecrire quelque chose de valide.");
}

}


printf("Bravo vous l'avez trouve apres %d essais\n", compteur);


do
{
printf("Voulez vous faire une autre partie(oui/non)");
scanf("%d", &autre);
if (autre == "non")
{
autre = 0;
}
else if (autre == "oui")
{
autre = 1;
}
} while (autre != 1 || autre != 0);


} while(autre = 0);


printf("Appuyez sur une [1] et [Entrer] pour finir le programme");
scanf("%d", &wait);


return 0;
}




A voir également:

3 réponses

Utilisateur anonyme
17 juin 2017 à 16:56
Bonjour

Tu as déclaré tes variables à l'intérieur d'un bloc do { }, elles n'existent pas en dehors de ce bloc.
Et ce n'est qu'un début, tu as quelques autres problèmes.
0
Jean2808 Messages postés 13 Date d'inscription samedi 10 juin 2017 Statut Membre Dernière intervention 17 juin 2017 5
17 juin 2017 à 19:12
HelloRebeuDesBois


J'ai fait 5 ans de C, mais ton code me semble bizzare ...
La boucle do ... while sert à faire une itération sur un traitement, donc
la au début de ton programme tu n'en a pas besoin du tout puisque tu déclares juste des variables :compteur, nbc, wait, , donc tu dois en premier supprimer le do ici et le while qui lui correspond !!!
Fait déjà ca et ensuite on en reparle ...
Should be much better !!!

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

int main()
{
do
{
const int MIN = 1;
int compteur = 1;
int nbc = 0, nbm = 0; //nbc est le nombre choisi par l'utilisateur
int wait = 0;
int niveau = 0;
int autre = 0;
int MAX = 1;
0
Utilisateur anonyme
18 juin 2017 à 06:54
Si, cette boucle do..while est utile, même si elle a quelques problèmes. C'est elle qui permet de faire plusieurs parties à la suite.
0
Jean2808 Messages postés 13 Date d'inscription samedi 10 juin 2017 Statut Membre Dernière intervention 17 juin 2017 5
17 juin 2017 à 19:36
Ton programme C classique devrait donc ... au moins commencer par :

int main()
{
const int MIN = 1;
int compteur = 1;
int nbc = 0, nbm = 0; //nbc est le nombre choisi par l'utilisateur
int wait = 0;
int niveau = 0;
int autre = 0;
int MAX = 1; 
0