Signaler

Renvoyer char [Résolu]

Posez votre question helloworld95 - Dernière réponse le 11 févr. 2017 à 18:19 par helloworld95
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;
	}



Afficher la suite 
Utile
+0
plus moins
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;
}
helloworld95- 11 févr. 2017 à 18:18
Merci c'est beaucoup plus clair comme ça !
Répondre
Donnez votre avis
Utile
+0
plus moins
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".
helloworld95- 11 févr. 2017 à 18:19
Effectivement rang est l'index du caractère à renvoyer.
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !