Java:initializé arrays

Résolu/Fermé
domxaline - 12 avril 2012 à 18:59
 domxaline - 14 avril 2012 à 17:35
Bonjour,
j'ai un pb initialiser mon arrays;je veux avoir résultat suivant:

1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1

mais j'ai erreur en compilant mon prg
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at TestArrays2.main(TestArrays2.java:17)

voilà mon prg
public class TestArrays2 
{
	public static void main(String[]args)
	{
		int i;
		int j;
		
		int table [][]=new int [4][4];
		for(i=0;i<5;i++)
		{
			for(j=0;j<5;j++)
			{
				if(i==j)
					table[i][j]=1;
				else
					table[i][j]=0;	
			}
			System.out.print(i);
			System.out.print(j);
		}
	}


veuillez m'aider svp
A voir également:

3 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
12 avril 2012 à 19:00
Tu as déclaré int table [][]=new int [4][4]; or ton tableau fait 5x5 donc forcément ça plante lorsqu'il essaye d'accéder à la 5è colonne ou à la 5è ligne...
1
int table [][]=new int [3][3];

même en faisant comme ça,j'ai un erreur
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at TestArrays2.main(TestArrays2.java:17)
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > domxaline
12 avril 2012 à 19:13
pourquoi [3][3] ? c'est [5][5] qu'il faut mettre !!!
0
si je met 5
le résultat que je obtiens
0515253545

je veux obtenir le résultat suivant:
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > domxaline
12 avril 2012 à 19:22
Après ton affichage est faux, mais au moins tu n'as plus d'erreur sur le tableau !
0
ok j'ai réussi le prg
public class TestArrays1  
{ 
    public static void main(String[]args) 
    { 
     int[][]tab =new int[5][5]; 
     for(int i=0;i<tab.length;i++) 
         tab[i][i]=1; 
     //affichage 
     System.out.println("je veux : 0"); 
     for (int i=0;i<tab.length;i++) 
     {  
       for(int j=0;j<tab[i].length;j++) 
           System.out.print(tab[i][j]+""); 
       System.out.print("\n"); 
     } 
         } 
     
     
} 
0