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 :

Sortir de la saisie dans une boucle while


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 157
    Par défaut Sortir de la saisie dans une boucle while
    Bonsoir tout le monde

    j'ai fait ce petit programme qui permet de saisir des chiffres et de donner le minimum et le maximum
    mais le problème que après avoir fait la saisie je sais pas comment sortir à partir de la console, comme en PERL on fait conrol+z


    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
    27
    28
    29
    30
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
    int max, min, saisi;
     
     
    printf("donner le chiffre \n");
    scanf("%d",&saisi);
     
    max=saisi;
    min=saisi;
     
    while(saisi){
     
    if(saisi>max){
        max=saisi;
    }
    else if(saisi<min){
    min=saisi;}
     
    printf("donner un autre chiffre \n");
    scanf("%d",&saisi);
     
    }
     
    printf("le max est %d et le min est %d \n",max,min);
    return 0;
    }
    merci pour votre aide

  2. #2
    Membre actif Avatar de MotorX
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 87
    Par défaut
    Revois ton indentation , et quand tes if , else , else if n'ont qu'une seule ligne a faire faire tu n'es pas obliger de mettre les {} .

    Et clarifie ton problème tu veux sortir de quoi ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 157
    Par défaut
    mon problème ne se situe pas dans le code, car il marche , mais lorsque je suis en ligne de commande et que j'ai terminé la saisie, je sais pas comment arrêter le programme, car il demande toujours un nouveau nombre
    je crois qu'il y a des boutons du clavier à utiliser pour arrêtez la saisie

    merci

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Tu dois tester le retour du scanf(). Il retourne un int qui en cas de fin de fichier est égal à EOF et sinon est égal au nombre de conversions, spécifiées dans le format, réussies
    Donc, typiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int stat;
    ....
    while((stat = scanf("%d",&saisi)) != EOF)
    {
       if(stat == 1)
       {    
          if(saisi>max) max=saisi;
          else if(saisi<min) min=saisi;
          printf("donner un autre chiffre \n");
       }
      else printf("Vous devez entrer un nombre entier \n");
    }
    Dans le cas du clavier, la séquence qui code la fin du fichier d'entrée dépend du système d'exploitation, et dans ton cas, on peut penser qu'il s'agit de la séquence de touches <CTRL Z><Entrée> (Windows).

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 157
    Par défaut
    merci pour votre aide
    donc on faisant un test de fin de fichier traduit sur le clavier par control+z
    a résolu mon problème

    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
    27
    28
    29
    30
    31
    32
    #include <stdio.h>
    #include <stdlib.h>
     
    int main()
    {
    int max, min, saisi;
    int stat;
     
    printf("donner le chiffre \n");
    stat = scanf("%d",&saisi);
     
     min=saisi;
        max=saisi;
    while(stat  != EOF){
     
     
    if (stat==1){
    if(saisi>max){
        max=saisi;
    }
    else if(saisi<min){
    min=saisi;}
     
    printf("donner un autre chiffre \n");
    stat=scanf("%d",&saisi);
    }
     
    }
     
    printf("le max est %d et le min est %d \n",max,min);
    return 0;
    }
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tkinter] Méthode get() dans une boucle while
    Par Thundie dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/02/2006, 00h06
  2. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

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