Supprimer occurrences dans un tableau
Résolu
haninoun12
Messages postés
6
Statut
Membre
-
fiddy Messages postés 11653 Statut Contributeur -
fiddy Messages postés 11653 Statut Contributeur -
Bonjour, je suis débutante en langage c et je veux faire une fonction récursive qui cherche les occurrences dans un tableau, et les supprimer en décalant les cases..
mais ça ne marche pas quoi que je fasse ! :( si vous pouvez m'aider svp...?
.
.
si je rempli mon tableau avec : 1 | 2 | 2 | 3 | 4 |(pour taille = 5)
j'ai comme resultat : 1 | 2 | 3 | 3 | 4 ... :/
.
voici ma fonction :
.
mais ça ne marche pas quoi que je fasse ! :( si vous pouvez m'aider svp...?
.
.
si je rempli mon tableau avec : 1 | 2 | 2 | 3 | 4 |(pour taille = 5)
j'ai comme resultat : 1 | 2 | 3 | 3 | 4 ... :/
.
voici ma fonction :
.
//--------------------------------------------------------------------
// Methode basée sur la recherche sequentielle (TABLEAU NON TRIE) :
void suppressionSequentielle(int tableau[],int taille){
int j = 0, i = taille-1;
if(i < 0)
return;
if(tableau[i] == tableau[i-1]){
for(j = i; j < taille; j++){
tableau[j] = tableau[j+1];
}
taille--;
}
suppressionSequentielle(tableau,taille-1);
}
//----------------------------------------------------------------------
A voir également:
- Supprimez toutes les occurrences
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment supprimer toutes les publications sur facebook d'un coup - Guide
- Voir les messages supprimés sur whatsapp - Guide
- Supprimer toutes les publicités - Guide
- Supprimez toutes les marques de fin de paragraphe dans ce document - Forum MacOS
if(i < 0 || taille < 2)
return;
mais rien n'a changé. le probleme est dans la boucle et aussi dans taille--; quand j'affiche le tableau avec la fonction afficherTableau(tableau,taille); la taille n'a pas été diminué..
Du coup, le i est inutile. Mets plutôt : if (taille < 2)
for(j = i; j < taille; j++){
Attention, taille ne représente pas le nombre d'éléments dans ton pointeur puisque tu modifies la variable comme s'il s'agissait d'un compteur...
Il faut que tu utilises une variable supplémentaire en paramètre dans ta fonction (un compteur ET la vraie taille qui elle ne changera pas).