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 :

Remplir un tableau


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut Remplir un tableau
    Bonjour

    Je ne comprends pas pourquoi le programme suivant plante à l'exécution ..
    En fait, je demande à l'utilisateur de donner la taille du mot qu'il veut rentrer, et ensuite, le programme est censé lui proposer de rentrer une à une les lettres de son mot.

    Merci d'avance !
    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
     
       1. #include <stdio.h>
       2. #include <stdlib.h>
       3.
       4. int remplir (char*tableau)
       5. {
       6.     int n;
       7.     int i;
       8.
       9.     printf("Bonjour, quelle est la taille de votre tableau svp ?\n\n" );
      10.     scanf("%d",&n);
      11.
      12.     for (i=0 ; i<n ; i++)
      13.     {
      14.         printf("Veuillez rentrer le caractere numero %d svp :\n",i+1);
      15.         scanf("%c",&tableau[i]);
      16.
      17.     }
      18.
      19.     return n;
      20. }
      21.
      22. int main()
      23. {
      24.     int nombreCaracteres;
      25.     char leTableau[200];
      26.     int i;
      27.
      28.     nombreCaracteres = remplir(leTableau);
      29.
      30.     for (i=0 ; i < nombreCaracteres ; i++)
      31.     {
      32.         printf("%c",leTableau[i]);
      33.     }
      34.
      35. return 0;
      36.
      37. }

  2. #2
    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
    Dans quelles conditions plante t-il ?
    Il ne me semble pas incorrect (si on entre une nombre inférieur ou égal à 200).

  3. #3
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Dès l'instant où on rentre le nombre de caractères du mot ..

  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
    Il ne doit pas planter sur cette lecture.

    Toutefois, cela impose des bizarreries importantes sur la manière d'entrer les valeurs au clavier :
    Si on a
    Bonjour, quelle est la taille de votre tableau svp ?
    5
    ...
    Alors, on lira mal les données suivantes (le programme va lire le(s) caractère(s) de fin de ligne entré derrière le 5)
    Il faut s'assurer de vider la ligne après la lecture du nombre de données.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d%*[^\n]%*c",&n);
    Le même problème se pose si on veut lire le mot avec un caractère par ligne.
    Même solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%c%*[^\n]%*c",&tableau[i]);

  5. #5
    Membre éclairé Avatar de m@tix
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 304
    Par défaut
    Merci pour vos réponses ! En vidant le buffer d'entrée, ça tourne ..

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Chez moi, ça ne plante pas. Par contre, il faut vider le buffer clavier à chaque entrée, sinon ça zappe une entrée sur deux.

Discussions similaires

  1. Réponses: 8
    Dernier message: 17/12/2005, 16h39
  2. remplir un tableau sans doublons ...
    Par ryo-san dans le forum C
    Réponses: 22
    Dernier message: 10/11/2005, 12h43
  3. Remplir un tableau associatif
    Par photorelief dans le forum Langage
    Réponses: 1
    Dernier message: 04/11/2005, 18h20
  4. Lire et remplir un tableau
    Par harris_macken dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 26/09/2005, 01h10
  5. [PHP-JS] Remplir un tableau javascript selon un tableau php
    Par jerome38000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/01/2005, 14h02

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