Renvoyer char
Résolu
helloworld95
-
helloworld95 -
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.
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:
- Expecting value line 1 column 1 (char 0) c'est quoi
- Remettre a 0 un pc - Guide
- Numéro de téléphone excel 0 - Guide
- Qualité de signal parabole 0 - Forum TNT / Satellite / Réception
- 0 barré clavier ✓ - Forum Windows
- Javascript void 0 c'est quoi ✓ - Forum Réseaux sociaux
2 réponses
Bonjour,
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.
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
Merci c'est beaucoup plus clair comme ça !
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".
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".