Bonsoir,
j'ai voulu créer un fichier.h contenant le fonctions manipulant les piles (déclaration, empiler, dépiler, ...) pour simplifier la vie , mais je rencontre un problème lors de l'exécution du programme et je ne sait justement pas d'où vient le prob (du fichier.h ou du main), c'est pour cela que je m'adresse à l'un de vous pour m'aider à ce sujet, voici mes fichier et code:
pile.h
main.c
pour ceux qui ont la flème de télécharger les fichiers voici leur code:
pile:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> typedef struct celle { int val; struct celle *svt; }pile; bool pile_vide(pile *p) { if(p == NULL) return true; else return false; } pile *init_pile() { return NULL; } int sommet_pile(pile *tete) { return tete->val; } void empiler(pile **tete, int x) { pile *p; p = malloc(sizeof(pile)); p->val = x; p->svt = tete; tete = p; } pile *depiler(pile *tete) { pile *p = tete; if(tete != NULL) { tete = tete->svt; free(p); p = NULL; } return tete; } int nbr_elt(pile *p) { int i = 0; pile *k = p; while(pile_vide(k) == false) { k = depiler(k); i++; } return i; }
main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <pile.h> int main() { pile *tete; tete = init_pile(); int i, val; for(i=0;i<6;i++) { printf("n%d = ",i+1); scanf("%d",&val); empiler(tete, val); } printf("\n"); i = 1; while(pile_vide(tete) == false) { val = -sommet_pile(tete); printf("-n%d = %d.", i, val); i = i+1; tete = depiler(tete); } return 0; }
merci d'y répondre
Partager