salut ,voila mon petit programme, j'ai un probleme avec la suppression en case 5, est ce quelqu'un peut m'aider?
#include<stdio.h>
#define dim 20
main()
{
int n, t[dim][4], i, choix, x, d, l=0, a, y, j, z, tmp,p;
do
{
printf("\n\n\t\t\t Menu \n\n");
printf("\t\t1-creation de la table\n");
printf("\t\t2-inserer\n");
printf("\t\t3-modifier\n");
printf("\t\t4-afficher\n");
printf("\t\t0-Quitter\n\n");
printf("\t\tChoiix 1-->4 :");
scanf("%d",&choix);
switch(choix)
{
case 1:
do
{
printf("\n\n\nEntrer le nombre des entregistrements:");
scanf("%d",&n);
}
while (n>dim && n<=0);
for (i=1; i<=n; i++)
{
printf("\n\nL'element %d:\n",i);
do
{
printf("le num:");
scanf("%d",&t[i][1]);
}
while(t[i][1]<0);
do
{
printf("la 1er note:");
scanf("%d",&t[i][2]);
}
while(t[i][2]>20 || t[i][2]<0);
do
{
printf("la 2eme note:");
scanf("%d",&t[i][3]);
}
while(t[i][3]>20 || t[i][3]<0);
t[i][4]=i+1;
}
d=1;l=n+1;t[n][4]=0;
for (i=l;i<=dim;i++)
{t[i][4]=i+1;}
t[dim][4]=0;
break;
case 2:
do
{
printf("le num:");
scanf("%d",&a);
}
while(a<0);
if(a<t[d][1])
{
t[l][1]=a;
do
{
printf("la 1er note:");
scanf("%d",&t[l][2]);
}
while(t[l][2]>20 || t[l][2]<0);
do
{
printf("la 2eme note:");
scanf("%d",&t[l][3]);
}
while(t[l][3]>20 || t[l][3]<0);
y=l;
l=t[l][4];
t[y][4]=d;
d=y;
}
else
{
j=z;
z=d;
while(a>t[z][1] && z!=0)
{
j=z;
z=t[z][4];
}
if(a==t[z][1])
{
printf("deja existe");
}
else
{
//if (z!=0)
//{
t[l][1]=a;
do
{
printf("la 1er note:");
scanf("%d",&t[l][2]);
}
while(t[l][2]>20 || t[l][2]<0);
do
{
printf("la 2eme note:");
scanf("%d",&t[l][3]);
}
while(t[l][3]>20 || t[l][3]<0);
y=l;
l=t[l][4];
t[y][4]=z;
t[j][4]=y;
//}
}
}
break;
case 3:
printf("\n\nEntrer l'element a modifie:");
scanf("%d",&x);
for (i=1;i<l;i++)
{
if (x==i)
{
printf("\n\nL'element %d:\n",i);
do
{
printf("la 1er note:");
scanf("%d",&t[i][2]);
}
while(t[i][2]>20 || t[i][2]<0);
do
{
printf("la 2eme note:");
scanf("%d",&t[i][3]);
}
while(t[i][3]>20 || t[i][3]<0);
}
}
break;
case 4:
i=d;
while(i!=0)
{
printf("\n\nL'element %d:\n",i);
printf("le num est:%d\n",t[i][1]);
printf("la 1er note est:%d\n",t[i][2]);
printf("la 2eme note est:%d\n",t[i][3]);
printf("l'adresse suivante est:%d\n\n",t[i][4]);
i=t[i][4];
}
printf("\nle 1er element se trouve a l'indice:%d\n\n",d);
printf("\nle 1e nouveau element sera ajouter a l'indice:%d\n\n",l);
break;
case 5:
printf("\n\nentrer l'element a supprime:");
scanf("%d",&x);
for(i=1;i<l;i++)
if(i==x)
{
while(i<l)
{
t[x][1]=t[x+1][1];
t[x][2]=t[x+1][2];
t[x][3]=t[x+1][3];
t[x][4]=t[x+1][4];
i=i+1;
}
}
break;
}
printf("\n\n\t\t***************************\n\n");
}
while (choix!=0);
}
Merci bien