Boucle while qui me pose problème en C
ghuilmk
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
ghuilmk Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
ghuilmk Messages postés 33 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde :)
J'ai un petit problème. J'apprends la prog en C depuis quelques temps et j'en arrive aux boucles. Et voilà : J'ai voulu créer un programme différent de l'exemple d'apprentissage, histoire de bien comprendre le truc. Je voulais faire un "Trouve le nombre auquel je pense", et afficher différents messages quand le nombre proposé par l'utilisateur est soit inférieur soit supérieur à ce nombre. Mon problème c'est que dès que je propose une valeur supérieure, une valeur inférieur, puis une valeur inférieure (via scanf), le programme se termine alors que l'utilisateur n'a même pas trouvé ! J'ai ce code, mais je ne trouve pas mon erreur :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int compteur = 10 ;
printf("Trouvez le nombre secret...");
scanf ("%d", &compteur);
while (compteur > 10);
{
printf("Nan ! plus bas...\n\n", compteur);
scanf ("%d", &compteur);
}
while (compteur < 10);
{
printf("Nan ! plus haut...\n\n", compteur);
scanf ("%d", &compteur);
}
if (compteur == 10);
printf("OUAIIIII !!\n");
return 0;
}
J'ai un petit problème. J'apprends la prog en C depuis quelques temps et j'en arrive aux boucles. Et voilà : J'ai voulu créer un programme différent de l'exemple d'apprentissage, histoire de bien comprendre le truc. Je voulais faire un "Trouve le nombre auquel je pense", et afficher différents messages quand le nombre proposé par l'utilisateur est soit inférieur soit supérieur à ce nombre. Mon problème c'est que dès que je propose une valeur supérieure, une valeur inférieur, puis une valeur inférieure (via scanf), le programme se termine alors que l'utilisateur n'a même pas trouvé ! J'ai ce code, mais je ne trouve pas mon erreur :
#include <stdio.h>
#include <stdlib.h>
int main()
{
int compteur = 10 ;
printf("Trouvez le nombre secret...");
scanf ("%d", &compteur);
while (compteur > 10);
{
printf("Nan ! plus bas...\n\n", compteur);
scanf ("%d", &compteur);
}
while (compteur < 10);
{
printf("Nan ! plus haut...\n\n", compteur);
scanf ("%d", &compteur);
}
if (compteur == 10);
printf("OUAIIIII !!\n");
return 0;
}
A voir également:
- Boucle while qui me pose problème en C
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mon PC s'allume puis s'éteint tout seul. Que faire ? ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Smart tv qui s'allume et s'éteint en boucle - Forum TV & Vidéo
2 réponses
Ton programme ne peut pas fonctionner correctement ...
1 - Si tu entre un nombre supérieur a 10, il entre dans la première boucle...
2 - Après, si tu entre un nombre inférieur a 10, il sort de la première boucle et entre dans la deuxième...
3 - Alors dans ce cas, si tu entre un nombre supérieur a 10, il va sortir de la deuxième boucle, mais il va pas remonter le programme, il va continuer de lire, donc il trouve rien alors il termine le programme ...
Il remonte le programme seulement dans le cas ou il se trouve dans une boucle, sinon, il continue de lire les lignes de codes en descendant ligne par ligne ...
EDIT : x au lieu de compteur
1 - Si tu entre un nombre supérieur a 10, il entre dans la première boucle...
2 - Après, si tu entre un nombre inférieur a 10, il sort de la première boucle et entre dans la deuxième...
3 - Alors dans ce cas, si tu entre un nombre supérieur a 10, il va sortir de la deuxième boucle, mais il va pas remonter le programme, il va continuer de lire, donc il trouve rien alors il termine le programme ...
Il remonte le programme seulement dans le cas ou il se trouve dans une boucle, sinon, il continue de lire les lignes de codes en descendant ligne par ligne ...
#include <stdio.h> void main() { int compteur = 10,x; printf("Trouvez le nombre secret..."); scanf ("%d",&x); while (x != compteur ) { if(x > compteur ) printf("Nan ! plus bas que %d\n",x); else if(x < compteur ) printf("Nan ! plus haut que %d\n",x); scanf ("%d",&x); } printf("Bravo"); scanf("\n"); }
EDIT : x au lieu de compteur
C'est pas ça x)
J'ai trouvé tout seul en attendant :)
Merci quand même pour ta grande aide :)
Tchou,
J'ai trouvé tout seul en attendant :)
Merci quand même pour ta grande aide :)
Tchou,
Il y avait une petite erreur ^^
Je l'ai refait à ma sauce, ça marche niquel, tiens, teste :
#include <stdio.h>
#include <stdlib.h>
int main() {
int compteur = 10, x = 0;
printf("Trouvez le nombre secret...");
scanf ("%d", &x);
while (x != compteur ) {
if(x>compteur ) printf("Nan ! plus bas que %d\n",x);
else if(x< compteur ) printf("Nan ! plus haut que %d\n", x);
scanf ("%d",&x);
}
printf("Bravo");
return 0;
}
Je l'ai refait à ma sauce, ça marche niquel, tiens, teste :
#include <stdio.h>
#include <stdlib.h>
int main() {
int compteur = 10, x = 0;
printf("Trouvez le nombre secret...");
scanf ("%d", &x);
while (x != compteur ) {
if(x>compteur ) printf("Nan ! plus bas que %d\n",x);
else if(x< compteur ) printf("Nan ! plus haut que %d\n", x);
scanf ("%d",&x);
}
printf("Bravo");
return 0;
}