Hallo Leute, versuche mich gerade an einer Funktion, die ein eindimensionales Array als Argument übergeben bekommt, als Rückgabewert aber "möglichst quadratisch" ein 2 dimensionales Array daraus rückgeben soll. Leider weiß ich momentan nicht weiter. Der Fehler liegt laut Eclipse bei "test[a]
1 | =input[i];" da die Meldung "exceptionoutofbound:10" liegt. |
2 | |
3 | Hier der code
|
4 | |
5 | [c]
|
6 | |
7 | public static int[][] convertArrayTo2D(int[] input)
|
8 | {
|
9 | int [][]test = new int[50][50];
|
10 | int i=0;
|
11 | int seitenlaenge = (int)sqrt(input.length);
|
12 | boolean gerade;
|
13 |
|
14 |
|
15 | if((sqrt(input.length)%2) == 0) // überprüft, ob Arraylaenge gerade oder ungerade ist.
|
16 | {
|
17 | gerade = true;
|
18 | }
|
19 | else
|
20 | {
|
21 | gerade = false;
|
22 | }
|
23 |
|
24 | if(gerade==true)
|
25 | {
|
26 |
|
27 | for (int a = 0; a < seitenlaenge; a++)
|
28 | {
|
29 | for (int b = 0; b < seitenlaenge; b++)
|
30 | {
|
31 | i++;
|
32 | test[a][c]=input[i];
|
33 |
|
34 | }
|
35 | }
|
36 | }
|
37 | else
|
38 | {
|
39 | for (int a = 0; a < seitenlaenge; a++)
|
40 | {
|
41 | for (int b = 0; b < seitenlaenge+1; b++)
|
42 | {
|
43 | i++;
|
44 | test[a][c]=input[i];
|
45 | }
|
46 | }
|
47 | }
|
48 |
|
49 | return test;
|
50 | }
|
Vielen Dank