Metoda zwracająca tablice

Metoda zwracająca tablice
ZoooL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0
Kopiuj
public static int dodajTablice(int tab1[], int tab2[]) {
        int tab3[]={};
        for (int i = 0; i < tab1.length; i++) {
        tab3 [] = {tab1[1]+tab2[1], tab1[2]+tab2[2], tab1[3]+tab2[3]};
        }
        return tab3[];
    }

może tak być?
Co poprawić?

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
5

Pół roku (z tego co widać na forum) zajmujesz/usiłujesz się Javą, i nawet nie ruszyłeś z miejsca. Złośliwe kompilatory rzucają Ci błędy pod nogi. Moze to nie dla Ciebie?

Ten kod to jakiś bełkot, który (hipotetycznie - gdyby nie miał dziesięciu błędów kompilacji) nie trzyma się kupy na gruncie matematyki z 8mej klasy. Sorry, jego "poprawić" to się nie da.

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0
ZoooL napisał(a):

może tak być?

No jak zadowala cię kod który nie działa to może tak być.

Co poprawić?

To co ci IDE podkreśliło. Kompilowałeś? Widziałeś errory?

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5549
2
ZoooL napisał(a):

public static int dodajTablice(int tab1[], int tab2[]) {
int tab3[]={};
for (int i = 0; i < tab1.length; i++) {
tab3 [] = {tab1[1]+tab2[1], tab1[2]+tab2[2], tab1[3]+tab2[3]};
}
return tab3[];
}

może tak być?

Nie może

Co poprawić?

Wszystko. Zacznij od poczytania jak działają pętle, bo nie umiesz użyć indeksu z pętli

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Przeciez nic w tym kodzie nie jest dobrze xD On się nawet nie skompiluje, a co tu w ogóle mówić o działaniu. Jedyna linijka w tym kodzie, która nie ma błędów to:

Kopiuj
for (int i = 0; i < tab1.length; i++) {

Cała reszta do zaorania.

  1. Próbujesz zwrócic inta, a miałeś chyba tablicę
  2. Indeksujesz od 1 zamiast 0
  3. Hardkoujesz jakieś wymiary zamiast korzystać z .length wejściowych tablic
  4. Nie rozumiesz co czego służy []
JB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
0
Kopiuj
public static int[] dodajTablice(int[] tab1, int[] tab2) {
        if (tab1.length != tab2.length) throw new RuntimeException("Different arrays length");

        int[] result = new int[tab1.length];
        for (int i = 0; i < tab1.length; i++) {
            result[i] = tab1[i] + tab2[i];
        }

        return result;
    }
ZoooL
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 62
0
Kopiuj

public class STablice {
    public static int[] sTablice(int[] tab1, int[] tab2) {
        int[] tab3 = new int[tab1.length];
        for (int i = 0; i < tab1.length; i++) {
            tab3[i] = tab1[i] + tab2[i];
        }
        return tab3;
    }
        public static void main (String[]args){

            int tab1[] = {1, 2, 3, 4, 5};
            int tab2[] = {10, 20, 30, 40, 50};
            System.out.println(stablice(tab1, tab2));

        }
    }


error : [I@1b6d3586

JB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10
1

To nie jest błąd.
Jeśli chcesz wyświetlić tablicę w konsoli skorzystaj z takiej konstrukcji:

Kopiuj
System.out.println(Arrays.toString(sTablice(tab1, tab2)));

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.