Aider Moi sur Un Exercice En Language C svp - C - Programmation
Marsh Posté le 29-04-2011 à 06:27:50
Non mais tu parles vraiment comme ça dans la vie ? "Je n'arrive pas alors aider moi merci" ? Hein bein ...
Donc, avant de venir ici demander de l'aide demande toi ce que fait chaque ligne du code de ta méthode. Parce que manifestement tu n'as pas les idées au clair ...
Marsh Posté le 29-04-2011 à 01:39:55
Bonjour,
j'ai crée une biblihothèque "Liste.h" et quand je fait appel à la fonction "supr_oc" qui suprime les occurences d'un élement entrer dans la liste alors la fonction retourne un erreur c'est ça le code source alors aider moi merci d'avance :
-----------------------------------------------------------------------------------------------------------
typedef struct cellule{
int x;
cellule * suiv;
}cellule;
//----------------------------saisi entète de liste-----------------------------
cellule * saisi_entete(cellule *l){
cellule * nouv;
nouv=(cellule*)malloc(sizeof(cellule));
printf("entrer la cellule 1 de la liste\n" );
scanf("%d",&(nouv->x));
nouv->suiv=l;
l=nouv;
return l;
}
//----------------------------verification si la liste est vide-----------------
int vevide(cellule *l){
if(l=NULL){
return 0;
}else {return 1;}
}
//----------------------------saisi fin de la liste ----------------------------
cellule * saisi_fin(cellule *l){
cellule *p,*nv;
if(vevide(l)==0){
l=saisi_entete(l);
}else{
nv=(cellule*)malloc(sizeof(cellule));
p=l;
while(p->suiv!=NULL){
p=p->suiv;
}
p->suiv=nv;
nv->suiv=NULL;
printf("entrer lentier a ajouter a la fin:" );
scanf("%d",&(nv->x));}
return l;
}
//--------------------------------Taille De la Liste----------------------------
int taille(cellule * l){
int nb=1;
cellule *p;
p=l;
while(p->suiv!=NULL){
nb++;
p=p->suiv;
}
return nb;
}
//-----------------------------saisie position----------------------------------
cellule * saiaie_position(cellule * l){
int pos,i=1,ta;
cellule *p;
cellule *nv=(cellule *)malloc(sizeof(cellule));
p=l;
ta=taille(l);
do{
printf("Entrer la position de saisi entre [2..%d]:\n",ta);
scanf("%d",&pos);
}while(pos<1 || pos>ta);
if(pos==1){
l=saisi_entete(l);
}else if(pos>ta){
l=saisi_fin(l);
}else{
printf("Entrer l''element à saisi \n" );
scanf("%d",&(nv->x));
for(i=1;i<pos-1;i++){
p=p->suiv;
}
nv->suiv=p->suiv;
p->suiv=nv;
}
return l;
}
//----------------------------Suppression debut---------------------------------
cellule * supr_deb(cellule *l){
cellule *p;
p=l;
if(l==NULL){l=NULL;}else if(l->suiv==NULL){l=NULL;free(p);}else{
l=l->suiv;
free(p);}
return l;
}
//------------------------------Supression Fin----------------------------------
cellule * supr_fin(cellule *l){
cellule * p,*p1;
p=l;
if(l==NULL){l=NULL;
}else
if(l->suiv==NULL){
l=NULL;
free(p);
}else{
while(p->suiv!=NULL){
p1=p;
p=p->suiv;
}
p1->suiv=NULL;
free(p);
}
return l;
}
//-------------------------------Suppression Pos--------------------------------
cellule * supr_pos(cellule *l,int pos,int ta){
int i;
cellule *p,*p1;
p=l;
p1=p;
if(pos==1){l=supr_deb(l);}else if(pos==ta){l=supr_fin(l);}else{
for(i=1;i<pos;i++){
p1=p;
p=p->suiv;
}
p1->suiv=p->suiv;
free(p);}
return l;
}
//-------------------------------Suppression occurance--------------------------
cellule * supr_ocu(cellule *l){
int a,ta,i;
cellule *p;
p=l;
ta=taille(l);
printf("entrer lelement a supprimer :\n" );
scanf("%d",&a);
while(p->suiv!=NULL){
while(p->x==a){
p=supr_deb(p);
}
p=p->suiv;
}
return l;
}
//----------------------------affichage de liste--------------------------------
void affich(cellule *l){
cellule *t=l;
while(t!=NULL){
printf("%d||",t->x);
t=t->suiv;
}
}
------------------------------------------------------------------------------------------------------------
Configuration: Windows Vista / Firefox 3.6.16/Borland C++
---------------
***Sohaieb***