Programme de suppression!!!!!

Fermé
crippella Messages postés 14 Date d'inscription jeudi 24 décembre 2009 Statut Membre Dernière intervention 8 mars 2010 - 5 févr. 2010 à 21:21
Bonjour,
est ce que vous pouvez m'aider de trouver quelle est le probleme de mon programme , il execute mais il ne fonctionne pas d'une façon correct
mon programme est une fonction de suppression ,il doit supprimer un "livre" aprés d'entrer son code et son nom de l'auteur et son titre
et la suppression se fait quand l'utilisateur taper le code d'un livre pourtant mon programme m'affiche "le livre n'existe pas "

NB:(dans mon programme principal j'ai fait la fonction d'ajouter un livre )
voici mon programme
struct elementlivre
{int code;
char auteur[20];
char titre[20];
};

typedef struct fonction
{
struct elementlivre infolivre;
struct fonction *suivant;
}maillon;

typedef maillon* liste;:modo:

maillon* suppression(maillon* l)
{ int x;
maillon *p,*avp;
gotoxy(10,50);
printf("entre le code de livre que vous voullez suprimer");
scanf("%d",&x);
if(l==NULL)
{
printf("la liste est vide ");
return NULL;
}
else
{
p=l;
avp=l;
while((p->suivant!=NULL)&&(p->infolivre.code!=x))
{
avp=p;
p=p->suivant;
}
if(p->suivant==NULL)
{
printf("le livre n'exite pas dans la liste ");
return NULL;
}
avp->suivant=p->suivant;
free(p);
return l;
}
}
merci d'avance