Advertisement
Guest User

students list

a guest
Feb 23rd, 2020
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.10 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5.  
  6. typedef struct
  7. {
  8.         char nom[10];
  9.         char prenom[10];
  10.         int note;
  11. }etudiant;
  12.  
  13. typedef struct liste
  14. {
  15.         etudiant valeur;
  16.         liste *suivant;
  17. }liste;
  18.  
  19. liste *creer(etudiant val)
  20. {
  21.         liste *ptr;
  22.         ptr=(liste*)malloc(sizeof(liste));
  23.         strcpy (ptr->valeur.nom,val.nom);
  24.         strcpy (ptr->valeur.prenom,val.prenom);
  25.         ptr->valeur.note=val.note;
  26.         ptr->suivant=NULL;
  27.         return ptr;
  28. }
  29.  
  30. liste *dernier(liste *l)
  31. {
  32.         liste *ptr=l;
  33.         if(l!=NULL)
  34.         {
  35.                 while(ptr->suivant!=NULL)
  36.                 {
  37.                         ptr=ptr->suivant;
  38.                 }                
  39.  
  40.         }
  41.         return ptr;
  42. }
  43.  
  44. liste *insertF(liste *l,etudiant val)
  45. {
  46.         liste *ptr,*p;
  47.         ptr=creer(val);
  48.         if(l==NULL)
  49.                 l=ptr;
  50.         else
  51.         {
  52.                 p=dernier(l);
  53.                 p->suivant=ptr;
  54.         }
  55.         return l;
  56. }
  57.  
  58. liste* creerlist(int dim)
  59. {
  60.         liste *L=NULL;
  61.         etudiant val;
  62.         int i;
  63.         for(i=0;i<dim;i++)
  64.         {
  65.                 printf("nom %d :  \n",i+1);
  66.                 scanf("%s",val.nom);
  67.                 printf("prenom %d :  \n",i+1);
  68.                 scanf("%s",val.prenom);
  69.                 printf("note %d :  \n",i+1);
  70.                 scanf("%d",&val.note);
  71.                 if(i==0)
  72.                 {
  73.                         L=creer(val);
  74.                 }
  75.                 else
  76.                 {
  77.                         L=insertF(L,val) ;
  78.                 }
  79.         }
  80.         return L;
  81. }
  82. //affichage des noms des etudiants qui ont eu une note superieure a 10
  83. void affichagep(liste *l)
  84. {
  85.         liste *ptr=l;
  86.         while(ptr!=NULL)
  87.         {
  88.                 if(ptr->valeur.note>=10)
  89.                         printf(" %s\n",ptr->valeur.nom);
  90.                 ptr=ptr->suivant;
  91.         }
  92. }
  93.  
  94. void affichage(liste *l)
  95. {
  96.         liste *ptr=l;
  97.         while(ptr!=NULL)
  98.         {
  99.                 printf(" %s\n",ptr->valeur.nom);
  100.                 printf(" %s\n",ptr->valeur.prenom);
  101.                 printf(" %d\n",ptr->valeur.note);
  102.                 ptr=ptr->suivant;
  103.         }
  104. }
  105.  
  106. liste *bonus(liste*l)
  107. {
  108.         liste*ptr=l;
  109.         while(ptr!=NULL)
  110.         {
  111.                 if(ptr->valeur.note<10)
  112.                 {
  113.                         ptr->valeur.note +=1;
  114.                 }
  115.                 else if((ptr->valeur.note>10)&&(ptr->valeur.note<15))
  116.                 {
  117.                         ptr->valeur.note +=0.5;
  118.                 }
  119.  
  120.                 ptr=ptr->suivant;
  121.         }
  122.         return (ptr);
  123. }
  124.  
  125. liste *insertD(etudiant val,liste *l)
  126. {
  127.         liste *ptr;
  128.         ptr=creer(val);
  129.         if(!ptr)
  130.         {
  131.                 printf("allocation non reussie\n");
  132.                 exit(-1);
  133.         }
  134.         strcpy (l->valeur.nom,val.nom);
  135.         strcpy (l->valeur.prenom,val.prenom);
  136.         l->valeur.note=val.note;
  137.         l=ptr;
  138.         return l;
  139. }
  140.  
  141. liste *insertM(liste *l,int ind,etudiant val){
  142.         liste *p=l;
  143.         liste *new;
  144.         int i;
  145.         new=creer(val);
  146.         for(i=0;i<ind-1;i++)
  147.         {
  148.                 p=p->suivant;
  149.         }
  150.         new->suivant=p->suivant;
  151.         p->suivant=new;
  152.         return l;
  153. }
  154.  
  155. int main()
  156. {
  157.         liste *list;
  158.         int d;
  159.         int ind,choix ;
  160.         etudiant val;
  161.         printf("Donnez la Dimension\n");
  162.         scanf("%d",&d);
  163.         //creer une liste
  164.         list=creerlist(d);
  165.         printf("-----------------------------\n");
  166.         //afficher la liste
  167.         printf("voila votre liste :\n");
  168.         affichage(list);
  169.         printf("-----------------------------\n");
  170.         //afficher la liste des etudiants qui ont eu une note superieure a 10
  171.         printf("la liste des etudiants qui ont eu une note superieure a 10");
  172.         affichagep(list);
  173.         printf("-----------------------------\n");
  174.         printf("liste apres la modification des notes");
  175.         list=bonus(list);
  176.         affichage(list);
  177.         return 0;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement