Trier un tab

lola - Modifié le 16 sept. 2017 à 00:04
 e - 21 sept. 2017 à 01:03
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.
A voir également:

2 réponses

NHenry
Messages postés
14925
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
162
16 sept. 2017 à 00:04
Ok, on a la lige de l'erreur, mais quelle est-elle cette erreur ?
0
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
0
KX
Messages postés
16520
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
16 mai 2022
124
16 sept. 2017 à 13:04
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++)
0
merciiii beaucoup!!! oui c est le probleme j ai pas initialisé la taille du t3 :p mercii pour votre aide :)
0