GRY-Online.pl --> Archiwum Forum

java - programowanie

06.02.2006
18:41
smile
[1]

@$D@F [ Generaďż˝ ]

java - programowanie

mam program ktory sortuje tablice jednowymiarowa, jesli liczba jest parzysta to zapisyhe ja w 2 tablicy w pierwszym wierszu [0], a jesli nie to w 2 [1], i jest jakis blad

java.lang.ArrayIndexOutOfBoundsException: 1
at sortowanie.sort(sortowanie.java:14)
at sortowanie.main(sortowanie.java:24)
Exception in threa

pomozecie ???


--------------------------------------------------------------------------
public class sortowanie ‹

public static int[][] sort(int[]tab) ‹
int[][]tab2=new int [tab.length][1];
int a=0;
int b=0;
for (int i=0; i<tab.length; i++) ‹
if ((tab[i]/2)==0)‹
tab2[a][0]=tab[i];
a++;

else ‹
tab2[b][1]=tab[i];
b++;


return tab2;

public static void main (String[] args) ‹
int[] tab=‹1,4,6,2,4,66,2›;
System.out.print (tab+" ");
sort(tab);
System.out.println (sort(tab)+" ");

06.02.2006
18:46
[2]

wysiu [ ]

int[][]tab2=new int [tab.length][2];


A tutaj
System.out.println (sort(tab)+" ");
wystacza same uszy, bez spacji. Pusty string.

06.02.2006
18:48
smile
[3]

@$D@F [ Generaďż˝ ]

int[][]tab2=new int [tab.length];

bo to ilosc wierszy czy max numer wiersza ? :|


o uszach wiem ale w tedy lepiej widac :)

sprawdzam

06.02.2006
18:49
[4]

@$D@F [ Generaďż˝ ]

int[][]tab2=new int [tab.length][b]; <- mialo byc


wysiu - nie pokazuje mi teraz zawratosci tab2 :/

06.02.2006
19:04
[5]

Toolism [ GameDev ]

Out of bounds exception oznacza ze wyszedłeś poza tablicę. Kompilator wskazuje ci na linię 14stą w której zwiększasz b.
Jeśli mógłbym zaproponować to zmień też warunek tab/2 == 0 .. bo to robienie sprawy nieprofesjonalnie, do sprawdzania reszty z dzielenia służy mod ( modulo ). Ale to drobnostka.

06.02.2006
19:06
[6]

wysiu [ ]

Tablice numerowane sa od zera, wiec jak chcesz wpisac cos do
tablica[1]
to jest to drugi element, wiec zadeklarowac musisz dlugosc [2].


int[][]tab2=new int [tab.length][2];
oznacza, ze bedziesz mial tablice tablic 7 na 2.

Ale nie sluchasz moich sugestii.

System.out.print (tab+" ");
sort(tab);
System.out.println (sort(tab)+" ");

Co to jest w ogole?:) Po co tam jest linia sort(tab);, i pomysl co zwraca sort(), jesli chcesz to wyswietlic:)

06.02.2006
19:12
smile
[7]

@$D@F [ Generaďż˝ ]

program juz prawie dziala :)
powiedz mi jeszcze jak otrzymac reszte z dzielenia :)

public static void main (String[] args) ‹
int[] tab=‹1,4,3,7,9,3,6,2,4›;
int[][]tab2=sort(tab);
System.out.println ();
for (int c=0; c<tab.length;c++)‹
System.out.print (" "+tab[c]+"");›
System.out.println ();
System.out.println ();
for (int c=0;c<1;c++)‹
for (int d=0; d<tab.length; d++)‹
System.out.print (" "+tab2[d][c]+"");

System.out.println ();




zamotalem bo sprawdzalem czy wyswirla wartosci tablic

06.02.2006
19:20
smile
[8]

@$D@F [ Generaďż˝ ]

eh i juz dziala :) tylko te zera na koncu 2 tablicy sa niepotrzebne ;)

caly kod :) jakies sugestie wysiu ???

=============================
public class sortowanie ‹

public static int[][] sort(int[]tab) ‹
int[][]tab2=new int [tab.length][2];
int a=0;
int b=0;
for (int i=0; i<tab.length; i++) ‹
if ((tab[i]%2)!=0)‹
tab2[a][0]=tab[i];
a++;

else ‹
tab2[b][1]=tab[i];
b++;


return tab2;


public static void main (String[] args) ‹
int[] tab=‹1,4,3,7,9,3,6,2,4›;
int[][]tab2=sort(tab);
System.out.println ();
for (int c=0; c<tab.length;c++)‹
System.out.print (" "+tab[c]+"");›
System.out.println ();
System.out.println ("posortowana");
for (int c=0;c<2;c++)‹
for (int d=0; d<tab2.length; d++)‹
System.out.print (" "+tab2[d][c]+"");

System.out.println ();



===========================
ps. dzieki za pomoc :)

© 2000-2024 GRY-OnLine S.A.