Bonsoir.
Je vous sollicite pour résoudre un problème .
J'ai un tableau à 2 dimensions, je cherche à trouver s'il y a un creux au niveau de la 1ère ou la dernière ligne.
là pas de problème, ça donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 class Cloture { public static void main(String[] args) { int[][] carte = { {0,0,0,1,1,0,1,1}, {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, }; int tablo[][]={carte[0],carte[carte.length-1]}; int x=0; for(int i=0; i<tablo.length;i++) { for(int j=0;j<tablo[i].length-1;j++) { if(tablo[i][j]-tablo[i][j+1]==1) { x=j+1; for(int k=x;k<tablo[i].length-1;k++) if(tablo[i][k]-tablo[i][k+1]==-1) { if(i==tablo.length-1) { i=carte.length-1; } System.out.println("Creux au niveau de" ); System.out.println("ligne "+(i+1)); System.out.println("colonne "+(x+1)); } } } } } }
mais si le creux existe dans la dernière ligne, il trouve le creux mais donne un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Creux au niveau de ligne 1 colonne 6
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 int[][] carte = { {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, {0,0,0,1,1,1,1,1}, {0,1,0,1,1,1,1,1}, };NB: je passe par la variable tablo, car on peur avoir int [ ][ ] carte= new int [200][300];
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Creux au niveau de ligne 5 colonne 3 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4 at Cloture.main(Cloture.java:24)
Merci
Partager