Aide sur exercice simple [BOUCLE]
Fermé
Gouag
Messages postés
32
Date d'inscription
vendredi 22 novembre 2013
Statut
Membre
Dernière intervention
28 mars 2014
-
Modifié par Gouag le 13/02/2014 à 05:42
evilfalcon - 14 févr. 2014 à 11:15
evilfalcon - 14 févr. 2014 à 11:15
A voir également:
- Aide sur exercice simple [BOUCLE]
- Iphone 14 simple - Guide
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Organigramme simple - Guide
- Montage video simple windows - Guide
4 réponses
Onitz
Messages postés
23
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
13 févr. 2014 à 08:08
13 févr. 2014 à 08:08
Bonjour,
Je ne connais pas le C mais bon cette exercice est similaire à ce que l'on fait quant ont apprend les boucle en JAVA, j'essaie quand même de t'aider ^^.
tu devrai mettre ta boucle directement dans un while, genre:
Je crois que ta boucle for est blizzard aussi. C'est censé être quelque chose comme ça:
<code>
for(départ de X,limite max de X,compteur++){//instruction}
</code
Je ne connais pas le C mais bon cette exercice est similaire à ce que l'on fait quant ont apprend les boucle en JAVA, j'essaie quand même de t'aider ^^.
tu devrai mettre ta boucle directement dans un while, genre:
La je répond juste à la 3ème question à la dernière désolé.
ok=0;
while(ok==0){
//Saisie de l'utilisateur
if(pasbon)
{
message "C'est pas bon !";
}
else
{
message "C'est bon !";
ok=1;
}
}
Je crois que ta boucle for est blizzard aussi. C'est censé être quelque chose comme ça:
<code>
for(départ de X,limite max de X,compteur++){//instruction}
</code
Archeus01
Messages postés
1571
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
451
13 févr. 2014 à 11:24
13 févr. 2014 à 11:24
for (X=nombre;X>=0;scanf("%d",&X))
Si le type tape -1, x est donc égale à -1 donc inférieur à 0 donc ça rentre pas dans ta boucle. Il ne faut pas le laisser l'utilisateur saisir un truc la dedans (sauf à la limite le nombre de chance auquel il a droit.
Mets plutôt un truc du style (la le mec aura 5 essais , ça fait longtemps que j'ai pas fait de c ; vérifier le X=X+1):
for (X=0;X<5;X=X+1)
printf("Saisir un nombre entier positif ou nul:");
scanf("%d",&nombre);
Si le type tape -1, x est donc égale à -1 donc inférieur à 0 donc ça rentre pas dans ta boucle. Il ne faut pas le laisser l'utilisateur saisir un truc la dedans (sauf à la limite le nombre de chance auquel il a droit.
Mets plutôt un truc du style (la le mec aura 5 essais , ça fait longtemps que j'ai pas fait de c ; vérifier le X=X+1):
for (X=0;X<5;X=X+1)
printf("Saisir un nombre entier positif ou nul:");
scanf("%d",&nombre);
Gouag
Messages postés
32
Date d'inscription
vendredi 22 novembre 2013
Statut
Membre
Dernière intervention
28 mars 2014
13 févr. 2014 à 20:25
13 févr. 2014 à 20:25
Merci à tous les deux pour vos réponses et remarques.
Voici ce que j'ai fait avec
Je continue à chercher.
Voici ce que j'ai fait avec
while. Cela fonctionne tant que la personne suit l'instruction de départ à savoir saisir un entier positif ou nul. En revanche, bien sûr, si je saisis -3 le programme s'arrête. Or c'est justement à ce moment que je voudrais qu'il dise
Ce n'est pas un entier positif ou nulet qu'il propose une nouvelle saisie:
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int nombre; printf("Saisir un entier positif ou nul:"); scanf("%d",&nombre); while(nombre>=0) { if (nombre<56||nombre>78) { printf("perdu\n"); scanf("%d",&nombre); } else { printf("gagne\n"); scanf("%d",&nombre); } } return 0; }
Je continue à chercher.
Gouag
Messages postés
32
Date d'inscription
vendredi 22 novembre 2013
Statut
Membre
Dernière intervention
28 mars 2014
13 févr. 2014 à 20:36
13 févr. 2014 à 20:36
Et voila j'ai trouvé!!! (on laisse tomber pour la partie ou le nombre saisi serait décimal)
Merci a vous deux, c'était
Il me reste juste le point 4. ci dessus dans mon poste initial. Quelqu'un aurait il une réponse?
Merci a vous deux, c'était
Whileet non
For....
Il me reste juste le point 4. ci dessus dans mon poste initial. Quelqu'un aurait il une réponse?
#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char *argv[]) { int nombre; printf("Saisir un entier positif ou nul:"); scanf("%d",&nombre); while(nombre) { if (nombre<0) { printf("ce n'est pas un entier positif ou nul\n"); scanf("%d",&nombre); } else if (nombre<56||nombre>78) { printf("perdu\n"); scanf("%d",&nombre); } else { printf("gagne\n"); scanf("%d",&nombre); } } return 0; }
Onitz
Messages postés
23
Date d'inscription
lundi 30 décembre 2013
Statut
Membre
Dernière intervention
16 septembre 2015
Modifié par Onitz le 14/02/2014 à 09:34
Modifié par Onitz le 14/02/2014 à 09:34
Tu ne peut pas demander à une variable de prendre une valeur infini (ou alors tu peut mais je ne vois pas comment ^^).
Mais apparemment tu peut limiter le nombre de caractère pris en compte lors de la saisie :
http://progdupeu.pl/#3-comment-bien-utiliser-scanf
Ça a déjà l'avantage d'empêcher ton programme de planter.
Mais apparemment tu peut limiter le nombre de caractère pris en compte lors de la saisie :
http://progdupeu.pl/#3-comment-bien-utiliser-scanf
Ça a déjà l'avantage d'empêcher ton programme de planter.
Le problème vient de la limite de la mémoire!
Quand tu initialises, tu prends un int, tu travaillera alors une variable à 16 bits, si je me souviens bien. Tu peux aller de -32 768 à 32 767, si tu prend une valeurs au dessus ton programme plante, car la valeur enregistrer n'est plus bonne!
Avec un long double, tu passes à 80 bits donc de -3.4*10-4932 à 3.4*104932, mais tu es toujours limiter, et tu n'aura jamais un nombre infini!
Après, mais je ne suis pas sur, il doit exister une fonction qui te permet toi-même de donner le nombre de bit à ta variable. Mais là à toi de chercher!
Quand tu initialises, tu prends un int, tu travaillera alors une variable à 16 bits, si je me souviens bien. Tu peux aller de -32 768 à 32 767, si tu prend une valeurs au dessus ton programme plante, car la valeur enregistrer n'est plus bonne!
Avec un long double, tu passes à 80 bits donc de -3.4*10-4932 à 3.4*104932, mais tu es toujours limiter, et tu n'aura jamais un nombre infini!
Après, mais je ne suis pas sur, il doit exister une fonction qui te permet toi-même de donner le nombre de bit à ta variable. Mais là à toi de chercher!