suma pól sąsiednich w tablicy dwuwymiarowej

0

Jak przy tablicy dwuwymiarowej zrobić wypisanie sumy sąsiednich pól?

Kod programu jest taki i tworzę tablicę dwuwymiarową wypełnioną po przekątnej rosnącymi liczbami od 0 do 9, pozostałe pola wypełnione zerami
kod dodatkowo wyświetla sumę pól przekątnych ale to nie istotne w przedstawionym problemie

public static void main(String[] args) 
    {
        int n = 10, suma = 0; int j=0,i=0;
        int macierz[][] = new int[n][n];
        for (j = 0; j < macierz.length; j++)
        {
            for (i = 0; i < macierz.length; i++)
            {
                if (i == j)
                {
                    macierz[i][j] = j;
                    suma = suma + j;
                } else if (n-1-i == j)
                {
                    macierz[i][j] = j;
                    suma = suma + j;
                }else macierz[i][j] = 0;
                
                System.out.print(macierz[i][j]+"\t");
            }
             System.out.println("\n");
             
        }

wynik w konsoli jest taki :

0	0	0	0	0	0	0	0	0	0	

0	1	0	0	0	0	0	0	1	0	

0	0	2	0	0	0	0	2	0	0	

0	0	0	3	0	0	3	0	0	0	

0	0	0	0	4	4	0	0	0	0	

0	0	0	0	5	5	0	0	0	0	

0	0	0	6	0	0	6	0	0	0	

0	0	7	0	0	0	0	7	0	0	

0	8	0	0	0	0	0	0	8	0	

9	0	0	0	0	0	0	0	0	9	

a chcę uzyskać coś takiego w wyniku:

0	1	0	0	0	0	0	0	1	0	

1	1	3	0	0	0	0	3	1	1	

0	3	2	5	0	0	5	2	3	0	

0	0	5	3	7	7	3	5	0	0	

0	0	0	7	4	4	7	0	0	0	

0	0	0	11	5	5	11	0	0	0	

0	0	13	6	11	11	6	13	0	0	

0	15	7	13	0	0	13	7	15	0	

17	8	15	0	0	0	0	15	8	17	

9	17	0	0	0	0	0	0	17	9	

Chodzi o to aby do konsoli wyrzucało mi taką tablicę w odpowiednich miejscach pola z zerem zastąpione wynikiem dodawania sąsiednich pól, zamysł mniej więcej tak wygląda.
Mam nadzieję, że dobrze się wyraziłem ale z 5 h męczę się z tym pomysłem i utknąłem.

Nie pogardził bym jakąś wskazówką, zamiast gotowego rozwiązania

1

Musisz stworzyć drugą tablicę do której będą wprowadzane wyniki.
Następnie przechodzisz przez całą tablicę i dla każdego elementu [i][j] wyliczasz sumę sąsiadów.
czyli indeksy:

[i-1][j-1] | [i-1][j] | [i-1][j+1]
---------------- | -------------------
[i][j-1] | [i][j] | [i][j+1]
[i+1][j-1] | [i+1][j] | [i+1][j+1]

Dodatkowo musisz postarać się aby nie odwoływać się do indeksów które nie istnieją.
Wykorzystaj do tego metodę dla wierszy macierz.length i kolumn macierz[0].length

0

Dzięki zrobione było tego samego dnia, błąd w warunku miałem ;)

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