Metoda zwracająca tablice

0
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ć?

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.

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?

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

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:

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 []
0
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;
    }
0

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

1

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1