Vous êtes sur la page 1sur 6

#include<stdio.h> #include<conio.h> #include<stdlib.

h> struct client{char nom[10]; char prenom[10]; int note; client *suiv;}; typedef client client; void init(client *pa) {pa=NULL;} client* empiler(client *pa) {client *pl; int i; pl=(client*)malloc(sizeof(client)); pl->suiv=pa; pa=pl; printf("entrer le nom %d\n",i+1); scanf("%s",pa->nom); printf("entrer le prenom %d\n",i+1); scanf("%s",pa->prenom); printf("entrer la nomte %d\n",i+1); scanf("%d",&pa->note); i=i+1; return pa;} int vid(client *pa) {if(pa==NULL) return 1; else

return 0;} client* dempiler(client *pa) {client *pd; if(vid(pa)==0) {printf("le nom %s\n",pa->nom); printf("le prenom %s\n ",pa>prenom); printf("le note %d\n",pa->note); pa=pa->suiv; pd=pa; free(pa);} else {printf("il est bloque\n");} return pd;}

main() {client *pd; client *pa; client *pk; int n,i; printf("entrer le nombre de utidaint\n"); scanf("%d",&n); init(pa); for(i=1;i<=n;i++) {pa=empiler(pa); } pa=dempiler(pa); pa=dempiler(pa);

getch();} typedef struct etudiant{ char nom[30]; char pre[30]; float note[3]; float moy; }etudiant; struct element { etudiant val; struct element *suiv; }; typedef struct element list ; void cree_liste(list *l,int n){ list *laux,*p; int i,j; float some; laux=l; for(i=0;i<n-1;i++){ p=(list*)malloc(size of(list)); printf("entrer le nom "); scanf("%s",p>val.nom); printf("entrer le prenom "); scanf("%s",p>val.pre); some=0; for(j=0;j<3;j++){ >val.note[j]); %d ",j); laux->suiv=p; laux=p; p->suiv=NULL; }} list *ajout_tete(list *l){ list *nouv,*p; int j; float some; p=l; me+(p->val.note[j]); trer la note %d ",i);

printf("en scanf("%f ",&p->val.note[j]); some=so } p->val.moy=some/3;

nouv=(list*)malloc(sizeof(list)); printf("entrer l'element ajouter \n"); printf("entrer le nom:\n "); scanf("%s",nouv->val.nom); printf("entrer le prenom: \n "); scanf("%s",nouv->val.pre); some=0; for(j=0;j<3;j++){ printf("entrer la note scanf("%f",&nouv-

some=some+(nouv>val.note[j]); } nouv->val.moy=some/3; nouv->suiv=p; p=nouv; return(p); } void aff(list *l){ list *nouv; int j; nouv=l; while(nouv!=NULL){ printf("%s %s : \nles notes sont:\n",nouv>val.nom,nouv->val.pre); printf(" \n"); for(j=0;j<3;j+ +){ printf("%f \n",nouv->val.note[j]); } printf(" la moyenne est : %f\n",nouv>val.moy); nouv=nouv->suiv; }} void ajout_fin(list *l){ list *laux,*p; int j; float some; laux=l; while(laux->suiv!=NULL){

laux=laux->suiv;} p=(list*)malloc(sizeof(list)); printf("ajouter l'tudiant la fin\n "); printf("\t entrer le Nom : "); scanf("%s",p->val.nom); printf("\t entrer le Prenom : "); scanf("%s",p->val.pre); some=0; for(j=0;j<3;j++){ printf("entrer la note %d ",j+1); scanf("%f",&p>val.note[j]); some=some+(p>val.note[j]); } p->val.moy=some/3; p->suiv=NULL; laux->suiv=p;} list *sup_tet(list *l){ list *lNew; lNew=l; l=l->suiv; free(lNew); return(l);} void sup_fin(list *l){ list *laux,*lsup; laux=l; while(laux->suiv!=NULL){ lsup=laux;

laux=laux>suiv;} lsup>suiv=NULL; free(laux);} void rechrch2(list *l){ list *laux; char Prenom[30]; laux=l; int j; printf("entrer le prenom que tu cherches !: "); scanf("%s",Prenom); while(laux!=NULL){ if(strcmp(laux>val.pre,Prenom)==0){ printf("%s %s : \nles notes sont:\n",laux->val.nom,laux>val.pre); printf(" \n"); for(j=0;j<3;j+ +){ printf("%f \n",laux->val.note[j]); } printf(" la moyenne est : %f\n",laux>val.moy); } laux=laux>suiv;

void recher3(list *l){ list *laux; float Note ; int j,i; printf("entrer la note recherche"); scanf("%f",&Note); while (laux!=NULL) { for(i=0;i<3;i++){ if ( laux->val.note[i]==Note){ printf("%s %s : \nles notes sont:\n",laux->val.nom,laux>val.pre); printf(" \n"); for(j=0;j<3;j++){ printf("%f \n",laux>val.note[j]); } printf(" la moyenne est : %f\n",laux>val.moy); }} laux=laux>suiv; }} void trie(list *l){ etudiant aid; list *laux1,*laux2; for(laux1=l;laux1! =NULL;laux1=laux1->suiv){ for(laux2=laux1;laux2! =NULL;laux2=laux2->suiv){

}}

if(laux1->val.moy< laux2->val.moy){ aid=lau x1->val; laux1>val=laux2->val; laux2>val=aid; }}}} void rechrche(list *l){ list *laux; char Nom[30]; int j; laux=l; printf("Quelle nom tu chrche? "); scanf("%s",Nom); printf("le Nom qui tu chrche est :\n"); while(laux!=NULL){ if(strcmp(laux>val.nom,Nom)==0){ printf("%s %s : \nles note est:\n",laux->val.nom,laux>val.pre); printf(" \n"); for(j=0;j<3;j++){ printf("%f \n",laux->val.note[j]); } printf(" la moyenne est : %f\n",laux->val.moy);}

laux=laux->suiv; }} main(){ list *l; int n,j; float some; printf("entrer le nombre d'tudiant "); scanf("%d",&n); l=(list*)malloc(sizeof(list)); printf("entrer le nom "); scanf("%s",l->val.nom); printf("entrer le prenom "); scanf("%s",l->val.pre); some=0; for(j=0;j<3;j++){ printf("entrer la note %d ",j); scanf("%f",&l>val.note[j]); some=some+(l>val.note[j]); } l->val.moy=some/3; l->suiv=NULL; cree_liste(l,n); l=ajout_tete(l); aff(l); ajout_fin(l); aff(l);

printf("apres trie la list est :\n"); trie(l); aff(l); rechrche(l); rechrch2(l); recher3(l); printf("apres la supresion\n"); l=sup_tet(l); aff(l); printf("apres la supression de fin de list :\n"); sup_fin(l); aff(l); getch();

Vous aimerez peut-être aussi