IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Aide sur un exercice boucle while et if


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Aide sur un exercice boucle while et if
    Bonjour je suis complètement bloqué je souhaiterai qu'un utilisateur émets un chiffre et qu'ensuite le nombre de candidat émis correspond au chiffre ou non.
    Si le chiffre cible correspond le compteur m'affiche 1 si les deux chiffres candidat sont pareils que la cible le compteur m'affiche 2.
    Or lorsque j'exécute mon programme tout défile à l'infinie.

    Merci d'avance pour vos explications


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <stdio.h>
    int main (){
    int compteur = 0;
    int cible;
    int candidat;
     
    printf("Quelle est la cible :");
    scanf("%d",&cible);
    printf("Quelle est le nombre de candidat :");
    scanf("%d",&candidat);
    scanf("%d",&candidat);
     
     
    if (candidat == cible)
    {
        compteur = compteur+1;
    }
     
     
    while (candidat != 0){
    printf ("%d\n",compteur);
     
    }
     
    return 0;
    }

  2. #2
    Membre averti
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Par défaut
    Hola !

    Si tout défile à l'infini, c'est que ton candidat ne doit jamais valoir 0, nan ?

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Regarde où tu as mis ta boucle while, et ce qu'elle contient:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (candidat != 0){
    printf ("%d\n",compteur);
     
    }
    Si candidat n'est pas déjà zéro quand tu entres dans la boucle, tu n'as aucune chance d'en sortir, parce rien dans ce code ne le met à zéro!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 2
    Par défaut Reponse
    Merci pour vos réponses.

    Donc je dois mettre le if au sein du while. Si le candidat est égal à la cible le compteur affiche plus 1, plus 2 si les deux correspondent ? Tant que le candidat est différent de zero sinon ça affiche zero ?

    Ma logique est la bonne s'il vous plait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <stdio.h>
    int main (){
    int compteur = 0;
    int cible;
    int candidat;
     
    printf("Quelle est la cible :");
    scanf("%d",&cible);
    printf("Quelle est le nombre de candidat :");
    scanf("%d",&candidat);
    scanf("%d",&candidat);
     
     while (candidat != 0){
    if (candidat == cible)
    {
        compteur = compteur+1;
    } 
    }
    printf ("%d\n",compteur);
     
    return 0;
    }

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par geekinfot Voir le message
    Ma logique est la bonne s'il vous plait ?
    As-tu lu la réponse de Médinoc ? Et y as-tu réfléchi dessus ?? As-tu une chance de sortir de la boucle si tu ne modifies pas, dans ladite boucle, la variable qui fait le test de continuation (la variable "candidat" donc...) ???

    Et
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Aide test d'entrée boucle while
    Par xmc_boss dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/05/2008, 23h01
  2. demande d'aide sur l'exercice de c++,urgent
    Par expertentout dans le forum C++
    Réponses: 3
    Dernier message: 21/01/2007, 22h05
  3. besoin d aide sur un exercice sur les pointeurs
    Par azumachakib69 dans le forum C
    Réponses: 3
    Dernier message: 28/12/2006, 01h16
  4. [8051] Aide sur un exercice
    Par john491 dans le forum Autres architectures
    Réponses: 4
    Dernier message: 04/05/2006, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo