SHOW:
|
|
- or go back to the newest paste.
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) |
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); |
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 | } |