Java:java.lang.ArrayIndexOutOfBoundsException

Résolu/Fermé
domxaline - 22 mai 2012 à 16:44
 Utilisateur anonyme - 22 mai 2012 à 23:38
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];
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:

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]+",");
		}
 
	}
}
1
Utilisateur anonyme
22 mai 2012 à 19:13
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
0
ok je comprend tous ce que vous dites
mais,aidez moi dans ce prg svp
0
Utilisateur anonyme
22 mai 2012 à 23:38
Bonjour,

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
0