Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include<stdlib.h>
- #include<string.h>
- typedef struct
- {
- char nom[10];
- char prenom[10];
- int note;
- }etudiant;
- typedef struct liste
- {
- etudiant valeur;
- liste *suivant;
- }liste;
- liste *creer(etudiant val)
- {
- liste *ptr;
- ptr=(liste*)malloc(sizeof(liste));
- strcpy (ptr->valeur.nom,val.nom);
- strcpy (ptr->valeur.prenom,val.prenom);
- ptr->valeur.note=val.note;
- ptr->suivant=NULL;
- return ptr;
- }
- liste *dernier(liste *l)
- {
- liste *ptr=l;
- if(l!=NULL)
- {
- while(ptr->suivant!=NULL)
- {
- ptr=ptr->suivant;
- }
- }
- return ptr;
- }
- liste *insertF(liste *l,etudiant val)
- {
- liste *ptr,*p;
- ptr=creer(val);
- if(l==NULL)
- l=ptr;
- else
- {
- p=dernier(l);
- p->suivant=ptr;
- }
- return l;
- }
- liste* creerlist(int dim)
- {
- liste *L=NULL;
- etudiant val;
- int i;
- for(i=0;i<dim;i++)
- {
- printf("nom %d : \n",i+1);
- scanf("%s",val.nom);
- printf("prenom %d : \n",i+1);
- scanf("%s",val.prenom);
- printf("note %d : \n",i+1);
- scanf("%d",&val.note);
- if(i==0)
- {
- L=creer(val);
- }
- else
- {
- L=insertF(L,val) ;
- }
- }
- return L;
- }
- //affichage des noms des etudiants qui ont eu une note superieure a 10
- void affichagep(liste *l)
- {
- liste *ptr=l;
- while(ptr!=NULL)
- {
- if(ptr->valeur.note>=10)
- printf(" %s\n",ptr->valeur.nom);
- ptr=ptr->suivant;
- }
- }
- void affichage(liste *l)
- {
- liste *ptr=l;
- while(ptr!=NULL)
- {
- printf(" %s\n",ptr->valeur.nom);
- printf(" %s\n",ptr->valeur.prenom);
- printf(" %d\n",ptr->valeur.note);
- ptr=ptr->suivant;
- }
- }
- liste *bonus(liste*l)
- {
- liste*ptr=l;
- while(ptr!=NULL)
- {
- if(ptr->valeur.note<10)
- {
- ptr->valeur.note +=1;
- }
- else if((ptr->valeur.note>10)&&(ptr->valeur.note<15))
- {
- ptr->valeur.note +=0.5;
- }
- ptr=ptr->suivant;
- }
- return (ptr);
- }
- liste *insertD(etudiant val,liste *l)
- {
- liste *ptr;
- ptr=creer(val);
- if(!ptr)
- {
- printf("allocation non reussie\n");
- exit(-1);
- }
- strcpy (l->valeur.nom,val.nom);
- strcpy (l->valeur.prenom,val.prenom);
- l->valeur.note=val.note;
- l=ptr;
- return l;
- }
- liste *insertM(liste *l,int ind,etudiant val){
- liste *p=l;
- liste *new;
- int i;
- new=creer(val);
- for(i=0;i<ind-1;i++)
- {
- p=p->suivant;
- }
- new->suivant=p->suivant;
- p->suivant=new;
- return l;
- }
- int main()
- {
- liste *list;
- int d;
- int ind,choix ;
- etudiant val;
- printf("Donnez la Dimension\n");
- scanf("%d",&d);
- //creer une liste
- list=creerlist(d);
- printf("-----------------------------\n");
- //afficher la liste
- printf("voila votre liste :\n");
- affichage(list);
- printf("-----------------------------\n");
- //afficher la liste des etudiants qui ont eu une note superieure a 10
- printf("la liste des etudiants qui ont eu une note superieure a 10");
- affichagep(list);
- printf("-----------------------------\n");
- printf("liste apres la modification des notes");
- list=bonus(list);
- affichage(list);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement