Trier un tab

Signaler
-
 e -
bonsoir..s'il vous plait aidez moi si vous pouvez!?j ai fait un code pour trier un tableau mais il y'a une erreur et j arrive pas a résoudre voici la partie d erreur..... et au revoir :)
while(i<=n){
            if( t[i]%2 == 0 ){
                t2[j]=t[i]; 
                j++;
               }
             else{           
                t3[k]=t[i]; //ici se pose une erreur !
                k++; 
             }
           i++; 
            }


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
14788
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
1 mai 2021
155
Ok, on a la lige de l'erreur, mais quelle est-elle cette erreur ?
justement c est ce que j arrive pas a comprendre!!!j ai fait une affectation si la valeur est impair je la mettre dans le t3
Messages postés
16336
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
14 mai 2021
118
Bonjour,

Je ne vois que deux erreurs possibles pour cette ligne :
NullPointerException : si
t3
n'est pas initialisé.
ArrayIndexOutOfBoundsException : si
t3
est dimensionné trop petit.

Si
t
est un tableau quelconque, la taille de
t2
et
t3
doit être au moins égal à celle de
t
pour gérer les cas où il ne contient que des valeurs paires ou que des valeurs impaires.

int[] t2 = new int[t.length];
int[] t3 = new int[t.length];

Attention au
while (i<=n)
parce que si
n
vaut
t.length
il faudra s'arrêter à
i<n
car en Java les indices commencent à
0
et finissent à
t.length-1
...

Au passage, il serait mieux de faire une boucle
for
:
for (int i=0, n=t.length; i<n; i++)
merciiii beaucoup!!! oui c est le probleme j ai pas initialisé la taille du t3 :p mercii pour votre aide :)