Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N   10
  5.  
  6. struct elt_list
  7. {
  8.     float valeur;
  9.     struct elt_list* suiv;
  10. };
  11.  
  12. void afficher_liste(struct elt_list* liste);
  13. void supprimer_liste(struct elt_list* liste);
  14.  
  15. int main(int argc, char const *argv[])
  16. {
  17.     int i;
  18.     float tab[N];
  19.     struct elt_list *teteP, *teteN;
  20.     srand(time(0));
  21.    
  22.     for (i = 0; i < N; i++)
  23.     {
  24.         tab[i] = rand() % 100 - 50;
  25.     }    
  26.     teteP = teteN = NULL;
  27.  
  28.     for (int i = 0; i < N; i++)
  29.     {
  30.         struct elt_list* pt_elem = (struct elt_list*) malloc(sizeof(struct elt_list));
  31.         if (pt_elem == NULL) {
  32.             printf("Erreur sur le malloc\n");
  33.             exit (1);
  34.         }
  35.         pt_elem->valeur = tab[i];
  36.  
  37.         if (tab[i] > 0)
  38.         {
  39.             pt_elem->suiv = teteP;
  40.             teteP = pt_elem;  
  41.         }
  42.         else
  43.         {
  44.             pt_elem->suiv = teteN;
  45.             teteN = pt_elem;  
  46.         }
  47.     }
  48.  
  49.     for (i = 0; i < N; i++)
  50.     {
  51.         printf("L'élément %d du tableau est %0.1f\n",i+1,tab[i]);
  52.     }
  53.    
  54.     afficher_liste(teteP);
  55.     printf("\n");
  56.     afficher_liste(teteN);
  57.     printf("\n");
  58.  
  59.     supprimer_liste(teteP);
  60.     supprimer_liste(teteN);
  61.     return 0;
  62. }
  63.  
  64. void afficher_liste(struct elt_list* liste){
  65.     struct elt_list *tmp;
  66.     tmp = liste;
  67.     while (tmp != NULL)
  68.     {
  69.         printf("%.1f --> ",tmp->valeur);
  70.         tmp = tmp->suiv;
  71.     }
  72. }
  73.  
  74. void supprimer_liste(struct elt_list* liste){
  75.     struct elt_list* tmp1;
  76.     struct elt_list* tmp2;
  77.  
  78.     tmp1 = liste;
  79.     while (tmp1 != NULL)
  80.     {
  81.         tmp2 = tmp1->suiv;
  82.         free(tmp1);
  83.         tmp1 = tmp2;
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement