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 :

liste chainée fonction pour afficher la liste


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut liste chainée fonction pour afficher la liste
    Bonjour,

    L'exercice consiste à créer une liste chaînées en utilisant obligatoirement les 3 structures ci-dessous.
    je dois créer une fonction pour enregistrer le nombre de personnes que l'utilisateur choisit et créer une fonction qui affiche la liste.
    Concernant la fonction pour enregistrer le nombre d'utilisateurs, il doit y avoir des erreurs....et concernant l'écriture de la fonction pour afficher
    l' entièreté de la liste, toutes mes tentatives ont échoués. Merci pour votre aide




    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    #include <stdio.h>
    #include <stdlib.h>
     
     
    typedef struct Personne
    {
        char *login;
        char *nom;
        int age;
     
     
    }Personne;
     
    typedef struct Noeud Noeud;
     
    struct Noeud
    {
     
        Personne *p;
        Noeud *next;
     
    };
     
    typedef struct Liste
     
    {
     
       Noeud *first;
     
    }liste;
     
     
     
    Personne *ajout_personne()
    {
        Personne *p1=malloc(sizeof(Personne));
        p1->login=malloc(256*sizeof(char));
        printf("Introduisez le login :\n");
        scanf("%s",&p1->login);
        p1->nom=malloc(256*sizeof(char));
        printf("Introduisez le nom :\n");
        scanf("%s",&p1->nom);
        p1->age=malloc(sizeof(int));
         printf("Introduisez l'age :\n");
        scanf("%d",&p1->age);
     
        return p1;
    }
     
     
    Noeud *ajout_noeud (Personne *pers)
    {
        Noeud *node=malloc(sizeof(Noeud));
        node->p=pers;
        node->next=NULL;
        return node;
    }
     
    int main()
    {
     
        liste *maliste=malloc(sizeof(liste));
       Noeud *current =malloc(sizeof(Noeud));
       Personne *p1=malloc(sizeof(Personne));
     
       int compteur=0;
     
     
     
     
     
        printf("\nNombre de personnes:");
        scanf("%d", &compteur);
     
        /*enregistrer les informations du nombre de personne*/
        while(compteur>0)
        {
            p1=ajout_personne();
            current=ajout_noeud(p1);
            compteur--;
     
        }
     
     
     
    }

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Dans ton main, il ne faut pas commencer par créer un noeud et une personne. Les créations de noeud et personne doivent passer par tes fonctions.
    Tu ne fais pas le lien entre les différents appels à ta fonction de création de noeud.
    Tu ne fais pas le lien entre le premier noeud créé et ta liste.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    plusieurs remarques (en dehors du découpage lourdingue en 3 structures, mais ça t'est apparemment imposé) :
    - ta fonction ajout_personne (pas fan du nom) se charge de l'allocation tu n'as pas à la faire dans ton main (cf. dinobogan),
    - même remarque pour le noeud (toujours cf. dinobogan),
    - ta liste n'a pas besoin d'être allouée dynamiquement dans ton main,
    - c'est dommage d'avoir des allocations dynamiques pour login et nom, et y coller une taille fixe,
    - login et nom sont déjà des pointeurs, pas besoin de passer "l'adresse de l'adresse" à scanf.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Par défaut
    Problème résolu. Merci pour votre aide.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/02/2010, 10h25
  2. Problème pour afficher une liste déroulante
    Par Oli_Ifre dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2007, 09h11
  3. afficher une liste en fonction de la lettre tapée
    Par mademoizel dans le forum ASP
    Réponses: 45
    Dernier message: 15/03/2007, 17h29
  4. Recheche commande AWK pour afficher une liste de fichiers
    Par Krispy dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 21/07/2006, 11h36
  5. tutoriel ou liste des fonctions pour GLADE
    Par debutanteVB.NET dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 23/11/2005, 16h08

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