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
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
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