bonjour ,j'ai fais un code qui empile et depile une pile,je voudrais faire une addition entre les deux derniers elements de la pile ;mais mon programme ne marche .Voici mon code :

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"pile.h"
 
int main ( int argc, char** argv)
{
 PILE pile;
 
 int valeur ,i,X;
 Initialiser_Pile(&pile);
  Empiler_Pile(45,&pile);  	
  Empiler_Pile(1,&pile);
  Empiler_Pile(2,&pile);
  Empiler_Pile(3,&pile); 
 Depiler_Pile (&pile,&valeur); 
  Depiler_Pile(&pile,&valeur); 
 Empiler_Pile((Depiler_Pile(&pile,&valeur) + Depiler_Pile(&pile,&valeur)),&pile);//probleme se situe la
 Afficher_Pile( &pile);
printf("\n");
return 0;
}
 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"pile.h"
 
// Procedure d'initialisation de la pile
 
void Initialiser_Pile (PILE* stack){
	stack->sommet=0;
}
 
 
//Fonction signalant que la pile est vide
 
int Pile_Vide(const PILE* pile)
{
 
	if(pile->sommet==FAUX)
		{
			return VRAI;
			printf("la pile est vide ");
		}
	else
		{
			return FAUX;
		}
}
 
/*Proc{dure d'empilage d'une pile*/
 
int Empiler_Pile (int val,PILE *pile)
{
 
	if(Pile_Pleine(pile)==0)
		{
			pile->tab[pile->sommet]=val;
			pile->sommet=pile->sommet+1;
			return VRAI;
		}
	else
		{
			return FAUX;
		}
}
 
/*Proc{dure depilage d'une pile*/
 
int Depiler_Pile(PILE* pile,int* valeur)
 
{
	if(Pile_Vide(pile)==FAUX)
		{
			pile->sommet=pile->sommet -1;
			*valeur=pile->tab[pile->sommet];
			return VRAI;
		}
	else
		{
			return FAUX;
		}
}
 
// Fonction signalant que la pile est pleine
 
int Pile_Pleine (const PILE* pile)
{
 
	if (pile->sommet==TAILLE_MAX)
		{
			return VRAI;
		}
	else
		{
			return FAUX;
 
		}
 
}
 
// procedure d'affichage de la pile
 
void Afficher_Pile( PILE* pile)
{
 int i;
 for (i=pile->sommet -1;i>=0;i--)
printf(" %d\t",pile->tab[i]);
} 
 
 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include"pile.h"
 
int main ( int argc, char** argv)
{
 PILE pile;
 
 int valeur ,i,X;
 Initialiser_Pile(&pile);
  Empiler_Pile(45,&pile);  	
  Empiler_Pile(1,&pile);
  Empiler_Pile(2,&pile);
  Empiler_Pile(3,&pile); 
 Depiler_Pile (&pile,&valeur);  
  Depiler_Pile(&pile,&valeur); 
 Empiler_Pile((Depiler_Pile(&pile,&valeur) + Depiler_Pile(&pile,&valeur)),&pile);//mon probleme se situe la
 Afficher_Pile( &pile);
printf("\n");
return 0;
}
merci pour votre aide