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 :

Problème de boucle


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 168
    Points : 82
    Points
    82
    Par défaut Problème de boucle
    salut

    j'ai un petit probleme et j'espere bien que vous m'aider

    voila mon code
    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
     
    void remp()
    { int j,i;
    printf("entrer : ");
    for( i=0;i<5;i++)
    {
    printf("\n");
     
    printf("cond: \n");
    for( j=0;j<4;j++)
    scanf("%d ",&(fich[i].cond[j]));
     
    printf("act: ");
    for( j=0;j<3;j++)
    scanf("%d ",&i);
     
    printf("force: ");
    scanf("%d ",&(fich[i].f));
    }
    }
    main()
    {
    remp();
     
    }
    le probleme est :

    lors de l'execution normalement je trouve "cond :" et je saisie 4 valeurs

    mais la probleme que le compilateur m'oblige d'entrer 5 valeur !!!!!!!!!!!!!!

    je ne sais pas pour quoi ou meme pas ou est la 5eme valeur!!!!

    et dans la 2eme itération , il marche bien c'est à dire il me permet de saisir 4 valeur et il m'afiche "act :" pour que je saisie les valeurs de la 2eme boucle...

    j'espere que j'ai bien expliquer

    merci d'avance

  2. #2
    Expert éminent sénior
    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
    Points : 13 926
    Points
    13 926
    Par défaut
    Supprime le caractère blanc dans le format derrière le %d
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d",&(fich[i].cond[j]));
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par info_amel Voir le message
    salut

    j'ai un petit probleme et j'espere bien que vous m'aider

    voila mon code
    <...>
    Tu peux déjà commencer par mettre le code en forme :
    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
     
     
    void remp ()
    {
       int j, i;
       printf ("entrer : ");
       for (i = 0; i < 5; i++)
       {
          printf ("\n");
     
          printf ("cond: \n");
          for (j = 0; j < 4; j++)
             scanf ("%d ", &(fich[i].cond[j]));
     
          printf ("act: ");
          for (j = 0; j < 3; j++)
             scanf ("%d ", &i);
     
          printf ("force: ");
          scanf ("%d ", &(fich[i].f));
       }
    }
     
    main ()
    {
       remp ();
     
    }
    puis corriger ceci :
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : D:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:3: warning: function declaration isn't a prototype
    main.c: In function `remp':
    main.c:5: warning: implicit declaration of function `printf'
    main.c:12: warning: implicit declaration of function `scanf'
    main.c:12: error: `fich' undeclared (first use in this function)
    main.c:12: error: (Each undeclared identifier is reported only once
    main.c:12: error: for each function it appears in.)
    main.c: At top level:
    main.c:24: warning: return type defaults to `int'
    main.c:24: warning: function declaration isn't a prototype
    Process terminated with status 1 (0 minutes, 0 seconds)
    après, on verra...

    Ceci compile correctement :
    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
    33
    34
    35
    36
    37
    38
    39
    40
     
    #include <stdio.h>
     
    struct fich
    {
       int cond[10];
       int f;
    };
     
    void remp (void)
    {
       int j, i;
     
       struct fich fich[10];
     
       printf ("entrer : ");
       for (i = 0; i < 5; i++)
       {
          printf ("\n");
     
          printf ("cond: \n");
          for (j = 0; j < 4; j++)
          {
             scanf ("%d", &(fich[i].cond[j]));
          }
          printf ("act: ");
          for (j = 0; j < 3; j++)
          {
             scanf ("%d", &i);
          }
          printf ("force: ");
          scanf ("%d", &(fich[i].f));
       }
    }
     
    int main (void)
    {
       remp ();
       return 0;
    }
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 168
    Points : 82
    Points
    82
    Par défaut
    salut
    merci pour votre aide

    la cause été vraiment le blanc dans scanf derrière le %d !!!!!!
    et quand j'ai le supprime ça marche !!!!!

    mais je veux savoir pour quoi ce probleme , je n'ai jamais penser que le blanc est sinificatif dans le C !!!!

  5. #5
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par info_amel Voir le message
    mais je veux savoir pour quoi ce probleme , je n'ai jamais penser que le blanc est significatif dans le C !!!!
    On est pas "dans le C" (comprendre "le code source"), là, mais dans une chaine de caractères transmise à scanf().

    http://xrenault.developpez.com/tutoriels/c/scanf/
    Pas de Wi-Fi à la maison : CPL

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Août 2007
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 168
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    On est pas "dans le C" (comprendre "le code source"), là, mais dans une chaine de caractères transmise à scanf().

    http://xrenault.developpez.com/tutoriels/c/scanf/
    merci

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 20h26
  2. [Tableaux] Problème avec boucle
    Par MYster dans le forum Langage
    Réponses: 6
    Dernier message: 11/11/2005, 18h39
  3. Problème de boucle
    Par TheUltimaSephiroth dans le forum C
    Réponses: 8
    Dernier message: 10/10/2005, 13h58
  4. Problème de boucle
    Par Louis-Guillaume Morand dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/09/2005, 09h10
  5. Problème de boucle
    Par basclln dans le forum C++
    Réponses: 19
    Dernier message: 02/04/2005, 09h13

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