Renvoyer char

Résolu/Fermé
helloworld95 - 11 févr. 2017 à 16:47
 helloworld95 - 11 févr. 2017 à 18:19
Bonjour,

J'aimerai renvoyer le caractère que j'ai supprimer de ma table. Mais la méthode ne fonctionne pas

Voici mon code

Merci d'avance pour votre aide.

	public char supprime(int rang){
		char carac = 0;
		for (int i = 0 ; i < taille; i++){
			if (rang == table[i]){
				carac = table[i];
				for (int j = i+1; j > taille; j++){
					table[j-1] = table[j];
				}
			}
		}
		taille--;
		return carac;
	}



A voir également:

2 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
11 févr. 2017 à 17:40
Bonjour,

if (rang == table[i])
va comparer ton rang avec la valeur dans le tableau, c'est à dire le char que tu veux retourner, ne voudrais tu pas plutôt faire
if (rang == i)
pour supprimer le caractère situé au rang donné ?
Dans ce cas ta boucle for sur les i, ainsi que ton if, ne servent à rien puisque tu peux directement aller au bon rang vu que tu le connais.

Et attention, dans ta boucle sur les j, tu fais j > taille ce qui est faux dès le départ puisque j = i+1.

public char supprime(int rang) {
    char carac = table[rang];
    taille--;
    for (int i = rang; i < taille; i++) {
        table[i] = table[i+1];
    }
    return carac;
}
0
Merci c'est beaucoup plus clair comme ça !
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
11 févr. 2017 à 17:46
J'ai un souci de compréhension de ton code :
De ce que je pense que tu veux faire :
- Tu appelles ta fonction pour retirer l'item d'index "rang" dans ta table "table" et tu compacte la table pour éviter le trou.
De ce que je constate :
- Tu appelles ta fonction pour retirer l'item "rang" de ta table et tu compactes ensuite.

Si Rang est l'index de l'item à retirer, ta fonction est fausse.
Si Rang est l'item à retirer alors ru n'as qu'à retourner "rang" ou au pire, faire un "break" avant de sortir de ton "if".
0
Effectivement rang est l'index du caractère à renvoyer.
0