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 :

un tableau et une matrice d'une liste chainée


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut un tableau et une matrice d'une liste chainée
    Bonjour
    bon j'ai le code suivant , son but est de crée un tableau d'une liste chainé
    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
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
     
    #define max_etat 10
    #define max_etat_afd 20
     
    typedef struct liste
    {
        int e;
        struct liste *suiv;
    }E_F;
    /******************************************************************/
    E_F *E[max_etat];
    /******************************************************************/
    void inserer_fin(E_F *tete,int ee){
    E_F *lt,*p;
    lt=(E_F*)malloc(sizeof(E_F));
        lt->e=ee;
        lt->suiv=NULL;
    if(tete==NULL){
     tete=lt;
    }
    else{
        p=tete;
        while(p->suiv!=NULL)p=p->suiv;
        p->suiv=lt;
    }
    }
    /******************************************************************/
     
    /******************************************************************/
     
    /******************************************************************/
     
    /******************************************************************/
    void afficher_E(E_F *l){
    E_F *p;
    p=l;
    printf("|{");
    while(p!=NULL){
        printf("%d,",p->e);
        p=p->suiv;
    }
    printf("}|");
    }
    /******************************************************************/
    void inisialise(){
        int i;
     
        for(i=0;i<max_etat;i++)
            inserer_fin(E[i],i);
    }
    void main(){
        int i;
    inisialise();
    for(i=0;i<max_etat;i++)
        afficher_E(E[i]);
    }
    Normalment le code s'affiche : |{0}||{1}||{2}||{3}||{4}||{5}||{6}||{7}||{8}||{9}|
    Mais il s'affiche : |{}||{}||{}||{}||{}||{}||{}||{}||{}||{}|

    Et j'ai besoin de Crée un matrice d'une type list chainé exmple (E_F *matrice[10][10]) comment je peut l'initialisé et la manipulé ?!!!!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Ta procédure inserer_fin passe ton pointeur par valeur -> erreur de débutant[e]
    En plus tu passes la valeur des cases de ton tableau E non initialisées.

    2 solutions: 1) Retourner le pointeur 2) passer un double pointeur

    Sinon ta ligne 45 ne fait pas partie de ta boucle


    Et pour ta matrice: 1) initialisation avec une double boucle 2) manipulation soit aux crochets E[1][2] soit à l'arithmétique des pointeurs E[x][y] = E[y * nb_columns + x].

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par foetus Voir le message
    Ta procédure inserer_fin passe ton pointeur par valeur -> erreur de débutant[e]
    En plus tu passes la valeur des cases de ton tableau E non initialisées.

    2 solutions: 1) Retourner le pointeur 2) passer un double pointeur

    Sinon ta ligne 45 ne fait pas partie de ta boucle


    Et pour ta matrice: 1) initialisation avec une double boucle 2) manipulation soit aux crochets E[1][2] soit à l'arithmétique des pointeurs E[x][y] = E[y * nb_columns + x].
    s.v.p et si tu as le temps tu peut m'aidé avec un code source psk je ss debutant et j'ai po compris tes explication :/

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ardennes (Champagne Ardenne)

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

    Informations forums :
    Inscription : Octobre 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par foetus Voir le message
    Ta procédure inserer_fin passe ton pointeur par valeur -> erreur de débutant[e]
    En plus tu passes la valeur des cases de ton tableau E non initialisées.

    2 solutions: 1) Retourner le pointeur 2) passer un double pointeur

    Sinon ta ligne 45 ne fait pas partie de ta boucle


    Et pour ta matrice: 1) initialisation avec une double boucle 2) manipulation soit aux crochets E[1][2] soit à l'arithmétique des pointeurs E[x][y] = E[y * nb_columns + x].
    Pfffffffff, oui vraimment je ss trés debutant j'ai oublié la langage c, Merci b1 j'ai corrigé mon code

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Ton code posté et non corrigé est très mauvais, parce qu'il ne désalloue pas la mémoire

    De plus, je ne comprends pas pourquoi tu utilises un tableau à côté de ta liste chaînée pour faire un double stockage de tes maillons

    Soit tu fais une liste chaînée soit un tableau de maillon mais pas les deux.

Discussions similaires

  1. Remplacement d'une ligne par une autre dans une matrice
    Par Mathematiker dans le forum Scilab
    Réponses: 4
    Dernier message: 17/02/2015, 14h57
  2. Passer d'une matrice boolean à une matrice int
    Par artemis93 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 23/03/2011, 14h42
  3. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  4. supprimer une ligne et une colonne d'une matrice
    Par nessing dans le forum C++Builder
    Réponses: 8
    Dernier message: 14/08/2007, 15h42
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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