Liste Chainée , probleme d'execution
Medreda23
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Medreda23 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Medreda23 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour tlm
je suis un programmeur debutant en c , sur code blocks notament
je viens d'essayer un programme supposé d'ajouter un element à une liste triée dans sa place, pas d'erreurs ni de warnings le programme ne veut pas s'executer
je suis un programmeur debutant en c , sur code blocks notament
je viens d'essayer un programme supposé d'ajouter un element à une liste triée dans sa place, pas d'erreurs ni de warnings le programme ne veut pas s'executer
#include<stdio.h> #include<stdlib.h> struct Elem {int x; struct Elem *suiv; }; typedef struct Elem *liste; //************************ liste Ajout_position(liste L,int a) {liste N,p=L,q; N=(liste)malloc(1*sizeof(liste)); if(N!=NULL) { N->x=a; if((L->x)>=a || L==NULL) { N->suiv=L; L=N; } else { while((p->x)<=a && p!=NULL) { q=p; p=p->suiv; } q->suiv=N; N->suiv=p; } } return L; } void Afficher(liste L) {liste p=L; if(L==NULL) { printf("impossible de faire l'ajout"); } else { while(p!=NULL) { printf("%d->",p->x); p=p->suiv; } printf("NULL\n"); } } main() {liste L=NULL; L=Ajout_position(L,3);Afficher(L); L=Ajout_position(L,4);Afficher(L); L=Ajout_position(L,6);Afficher(L); L=Ajout_position(L,65);Afficher(L); L=Ajout_position(L,2);Afficher(L); L=Ajout_position(L,1);Afficher(L); L=Ajout_position(L,0);Afficher(L); }
A voir également:
- Liste Chainée , probleme d'execution
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Site dangereux liste - Guide
- Liste site streaming illégal - Accueil - Services en ligne
2 réponses
Bonjour,
J'ai pas tout vu, mais déjà :
main()
Le bon prototype du main() est : int main(void)
if((L->x)>=a || L==NULL)
Il faut mettre L==NULL en première position sinon plantage.
while(p->x <= a && p!=NULL)
Il faut mettre p!=NULL en première position.
<ital>N=(liste)malloc(1*sizeof(liste));</liste>
Plutôt sizeof(struct Elem) ou *N
Pour info, le cast est superflu=> N=malloc(sizeof(struct Elem));
Et enfin n'oublie pas return 0; en fin du main pour signaler que tout s'est bien déroulé.
Corrige déjà tout ça. Recompile et resteste.
J'ai pas tout vu, mais déjà :
main()
Le bon prototype du main() est : int main(void)
if((L->x)>=a || L==NULL)
Il faut mettre L==NULL en première position sinon plantage.
while(p->x <= a && p!=NULL)
Il faut mettre p!=NULL en première position.
<ital>N=(liste)malloc(1*sizeof(liste));</liste>
Plutôt sizeof(struct Elem) ou *N
Pour info, le cast est superflu=> N=malloc(sizeof(struct Elem));
Et enfin n'oublie pas return 0; en fin du main pour signaler que tout s'est bien déroulé.
Corrige déjà tout ça. Recompile et resteste.