Bonsoirs tous le monde ,si vous voulez bien sur m'aider j'ai un problème dans mon programme : quand je remplis ma pile, la suppression ne fonctionne pas. J'ai du mal à trouver l’erreur.

Merci d'avance

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
#include<stdio.h>
 
typedef struct
{
	int T[100];
	int sommet;
}pile;
 
typedef struct
{
	int T[100];
	int Long;
}liste;
 
void initialiserL(liste *L)
{
L->Long=0;
}
 
void inisialiserP (pile *p)
{
	p->sommet=-1;
}
 
void empiler(pile *p,int e)
{
	if(p->sommet==99)
        {
	printf("la pile est pleine");
         }
	else
          {
	     p->sommet++; 	
	     p->T[p->sommet]=e;	 
}
}
 
void depiler(pile *p)
{
	if(p->sommet!=-1){
		p->sommet--;
	}
	else{
		printf("La pile est vide !");
	}
}
 
void inserer(liste *L,int k,int e)
{
    int n,i;
    n=L->Long;
	if(n>100)
            {
		printf("la liste est pleine");
            }
	  else
         {
            if(k>=0 && k<=n+1){
                for(i=n;i>=k;i--){
                    L->T[i+1]=L->T[i];
                    }
                    L->T[k]=e;
                    L->Long=L->Long+1;
            }
             else
               {
                 printf("  operation impossible\n");
              }
        }
}
 
void supprimer(liste *L,int p)
{
int i;
    if(L->Long<=0){
        printf("la liste est vide\nDonc il n'y aucun element a supprime");
    }
    else
    {
        if(p>=0 && p<L->Long)
         {
           for(i=p;i<=L->Long-1;i++)
          {
            L->T[i]=L->T[i+1];
           }
            L->Long=L->Long-1;
        }
        else
         {
            printf("L'operation est imposible");
        }
    }
}
main()
{
	pile p;
	liste l;
	int i,x,val;
	printf("Donner le nombre des element a inseree dans la pile: ");
	scanf("%d",&x);
 
	initialiserL(&l);
	inisialiserP(&p);
 
	for(i=0;i<x;i++){
		printf("\nval %d=",i);
		scanf("%d",&val);
		empiler(&p,val);
	}
 
	printf("\n");
	printf("======La pile apres l'empilation======\n");
	for(i=0;i<x;i++){
		printf("p.T[%d]=%d\n",i,p.T[i]);
	}
 
		while(p.sommet=!-1)
		{
		depiler(&p);
		inserer(&l,l.Long+1,p.T[p.sommet]);
		printf("p.t[%d]=%d",&i,p.T[i]);
    }  
    l.Long=0;
   	printf("======La pile apres suppression======\n");
    for(i=0;i<x;i++){
		printf("p.T[%d]=%d\n",i,p.T[i]);
	}	
}
.