ça ne me paraît pas très compliqué.
à supposer que tu veuilles garder les éléments dans l'ordre où ils sont :
tu pars de la première case.
-d'abord, si elle est vide, tu cherches la prochaine case qui n'est pas vide et tu échanges leurs contenus respectifs
-ensuite, tu parcours les cases du tableau et chaque fois que tu tombes sur un doublon, tu vides la case incriminée (tu mets NULL ou "" dedans ou je ne sais quoi en fonction du type de valeurs que contient ton tableau).
et tu fais ça pour chaque case de ton tableau.
en C ça doit ressembler à ça :
for (int i=0 ; i<INDEX_MAX ; i++)
{
if (tableau[i]=NULL)
{
while (int j=i+1 <= INDEX_MAX & tableau[j]=NULL)
{j++;};
if(j<=INDEX_MAX)
{tableau[i]=tableau[j];tableau[j]=NULL;}
}
while (j=i < INDEX_MAX)
{
j++
if (tableau[j]==tableau[i])
{tableau[j]=NULL;}
}
}
je ne connais pas le C donc je ne peux pas garantir que la syntaxe est correcte, et il est possible qu'il y ait des erreurs, mais enfin c'est l'idée 