Java:java.lang.ArrayIndexOutOfBoundsException
Résolu
domxaline
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
prg suivant me donne erreur suivantes:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Fusion.main(Fusion.java:24)
la ligne 24 est :
C[Bindex]=B[Bindex];
prg suivant me donne erreur suivantes:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Fusion.main(Fusion.java:24)
la ligne 24 est :
C[Bindex]=B[Bindex];
public class Fusion { public static void main(String[]args) { int[]A={1,2}; int[]B={7,8,9}; int[]C=new int[A.length+B.length]; int AIndex=0; int Acount= A.length; int Cindex=C.length; while(AIndex<Acount) { if(A[AIndex]<B [AIndex]) { C[AIndex]=A[AIndex]; } AIndex++; } for(int Bindex=1;Bindex<Cindex;Bindex++) { C[Bindex]=B[Bindex]; } for(int i=0;i<C.length;i++) { System.out.println(C[i]); } } }
A voir également:
- Java:java.lang.ArrayIndexOutOfBoundsException
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
4 réponses
ok je resolu le pb
public class Fusion1 { public static void main(String[] args) { int[]A={1,2}; int[]B={7,8,9}; int[]C=new int[A.length+B.length]; int Bindex = 0; // on stocke les valeurs de A dans C for(int i=0;i<A.length;i++) { C[i]=A[i]; } // on stocke les valeurs de B dans C for(int i=A.length;i<B.length+A.length;i++) { C[i]=B[Bindex]; Bindex ++; } // On affiche le tout for(int i=0;i<C.length;i++) { System.out.print(C[i]+","); } } }
Bonjour,
Une petite question:
Est-ce un exercice qui oblige de programmer la fusion sans utiliser, les méthodes existantes (je pense à la méthode sort de la classe Arrays) ?
Il suffirait alors de copier tout a dans c, puis tout b dans c et enfin de trier c pour avoir une fusion triée.
Sinon il faudra revoir ton code...
Une remarque:
Essayer de respecter les conventions de nommage en Java.
exemples:
Le nom d'une variable devrait commencer par une lettre minuscule,
Le nom d'une classe par une majuscule,
Tes tableaux A, B et C devraient se nommer (au minimum ) a, b et c.
Consulter par exempe:
http://www.loribel.com/java/normes/nommage.html
Cordialement,
Dan
Une petite question:
Est-ce un exercice qui oblige de programmer la fusion sans utiliser, les méthodes existantes (je pense à la méthode sort de la classe Arrays) ?
Il suffirait alors de copier tout a dans c, puis tout b dans c et enfin de trier c pour avoir une fusion triée.
Sinon il faudra revoir ton code...
Une remarque:
Essayer de respecter les conventions de nommage en Java.
exemples:
Le nom d'une variable devrait commencer par une lettre minuscule,
Le nom d'une classe par une majuscule,
Tes tableaux A, B et C devraient se nommer (au minimum ) a, b et c.
Consulter par exempe:
http://www.loribel.com/java/normes/nommage.html
Cordialement,
Dan
Bonjour,
Cordialement,
Dan
int i1 = 0; int i2 = 0; // copie du tableau tabA dans le tableau tabC: for(i1 = 0; i1 < tabA.length; i1++) { tabC[i1] = tabA[i1]; } // copie du tableau tabB dans le tableau tabC // cette copie doit se faire à la suite de celle de tabA dans tabC // c'est à dire à l'index i1: for(i2 = 0; i2 < tabB.length; i2++) { tabC[i1] = tabB[i2]; i1++; } // et c'est terminé pour les copies. Il reste à trier le tableau tabC. Arrays.sort(tabC); //import java.util.Arrays; System.out.println("\ntabC après tri:"); for(int i = 0; i < tabC.length; i++) { System.out.println(tabC[i]); }
Cordialement,
Dan