Bonjour,
Voilà,je suis novice avec les listes chainées. Je sollicite votre aide.
En fait, je souhaiterais écrire un programme permettant de lire les élements du champ de ma liste chainée et de les afficher.
Voici ce que j'ai pu faire. Toutefois, il m'affiche des valeurs bizarre lors de l'éxécution.
Des corrections??
Merci par avance de votre aide.
Fichier donnéeCode:#include<stdio.h> #include<stdlib.h> typedef struct noeud noeud; struct noeud{ int identifiant; double abscisse; double ordonee; int demande; /*demande du client*/ int temps_service; int borne_inf_tw; int borne_sup_tw; int capacite; struct noeud *suivant; }; typedef noeud* llist; llist ajouter_noeud(llist liste, int id, double abs, double ord, int dde, int tps_service, int b_inf_tw, int b_sup_tw, int cap) { noeud* nouveau = malloc(sizeof(noeud)); nouveau->identifiant = id; nouveau->abscisse = abs; nouveau->ordonee = ord; nouveau->demande = dde; nouveau->temps_service = tps_service; nouveau->borne_inf_tw = b_inf_tw; nouveau->borne_sup_tw = b_sup_tw; nouveau->capacite = cap; nouveau->suivant = NULL; return nouveau; } void afficher_liste(llist liste) { noeud *p = liste; printf("contenu de la liste\n"); while(p!= NULL) { printf("%d %lf %lf %d %d %d %d %d\n", p->identifiant,p->abscisse, p->ordonee, p->demande, p->temps_service, p->borne_inf_tw, p->borne_sup_tw, p->capacite); p = p->suivant; } } int main (void) { llist ma_liste = NULL; int id; double abs; double ord; int dde; int tps_service; int b_inf_tw; int b_sup_tw; int cap; int i; FILE *fp; if(ma_liste!= NULL) printf("la liste est non vide \n"); fp = fopen("D:\\Codes\\TS2004t3\\test.txt", "r"); if(fp == NULL) { printf("Impossible d'ouvrir fichier donnees .txt \n"); exit (-1); } while (fscanf(fp,"%d %lf %lf %d %d %d %d", &id, &abs, &ord, &dde, &tps_service, &b_inf_tw, &b_sup_tw, &cap)== 8) ajouter_noeud(ma_liste, id , abs, ord, dde, tps_service, b_inf_tw, b_sup_tw, cap); for(i=0;i<7;i++) { ma_liste = ajouter_noeud(ma_liste, id , abs, ord, dde, tps_service, b_inf_tw, b_sup_tw, cap); } afficher_liste(ma_liste); fclose (fp); getchar(); return EXIT_SUCCESS; } }
0 12,23 -12,33 +3 1 1 5 4
1 10, 11 22, 10 -1 1 1 7 4
2 22, 34 12,34 -2 1 1 9 4
3 42,33 23,24 +4 1 1 10 4
4 15,66 17,89 -2 1 1 14 4
5 22, 13 42,35 -2 1 1 20 4
-----