Bonjour, je travaillle actuellement sur les tableaux et les tris.Le programme que je dois réaliser est le suivant:
Soient t un tableau de taille n et k le nombre d'éléments distincts de t.Supprimer les doublons dans t lui-même.De plus, si le tableau t est trié au déoart, alors que la portion formée des k premiers éléments de doit l'être également après la transformation.Par exemple,pour n=10:
si t= 10 10 10 10 15 15 15 20 30 30 au départ
alors t= 10 15 20 30 # # # # # # après transformation et k=4 ou # est une valeur quelconque.
l'ordre dans lequel apparaissent les éléments après la transformation, n'a aucune importance si le tableau n'est pas trié.
Ecrire un algorithme pour résoudre le problème dans le cas où le tableau de départ est trié (idée:pour tout élément x apparaissant dans t, on ne garde que sa première occurence).
void Doublon(int tab[])
{
int k=1,i;
/* en parcourant le tableau, des que l'element suiant est different du precedent, on incremente k et on fait remonter les elements distincts au debut du tableau */
for(i=0;i<N;i++)
{
if(tab[i+1] != tab[i]){k++ ; Echange(&tab[i],&tab[?])};/* c'est ici qu'est le probleme */
}
/*une fois que l'echange est fait,il faut, a partir de l'indice k, remplacer les elements du tableau par des # */
for(i=k;i<N;i++)
{
tab[i] = '#';
}
}
Je voudrais procéder par échange pour faire remonter la première occurence de chaque élément distinct du tableau, mais je ne sais pas vraiment comment faire(et surtout où le faire dans le programme pour qu'il soit rigoureux).Et vous??
Si par hasard vou avez une réponse, je vous remercie d'avance.
---->Lola<----^^