Suma wierszy i kolumn w tablicy

1

Witam witam wszystkich. Jestem nowy i chciałbym poprosić o pomoc. Forum już przeszukałem i nie mogę znaleźć odpowiedzi. Mam takie zadanie stworzyć tablice, wypełnić losowymi liczbami, przekątne zmienić na 1 lub -1, podać dwie największe liczby w tablicy oraz zsumować parzyste wiersze i nieparzyste kolumny i tu mam problem ponieważ źle sumuje mi jedynki co psuje cały wynik. Dziękuje za pomoc wklejam co udało mi się stworzyć:

public class losowaTablica {
    public static void main(String[] args) {
        Random liczba = new Random();
        int xSize = liczba.nextInt(11) + 10;

        int[][] tab = new int[xSize][xSize];

        int []tab2={-1,1};
        int max = 0;
        int secend = 0;
        int sumPaWie = 0;
        int sumniePaKo = 0;
        for (int i = 0; i < tab.length; i++) {


            for (int j = 0; j < tab.length; j++) {
                tab[i][j] = liczba.nextInt(201) - 100;
                int diagolal2=liczba.nextInt(tab2.length);
                int diagonal=tab2[diagolal2];
                tab[i][i] = diagonal;
                tab[i][tab.length - i - 1] = diagonal;
                    System.out.print(tab[i][j] + " ");

                if (tab[i][j] > max) {
                    max = tab[i][j];

                }
                if (tab[i][j] > secend && tab[i][j] != max) {
                    secend = tab[i][j];
                }
                }

                System.out.println();
            }

        for (  int i = 1; i < tab.length; i +=2) {
            for ( int j = 0; j < tab.length; j ++) {

                sumPaWie+=tab[i][j];

            }
            }

        for (int i=0;i< tab.length;i++){
            for (int j=0;j< tab.length;j+=2){
                sumniePaKo+=tab[i][j];

            }

        }
        System.out.println("wiersze : "+sumPaWie + " ");
        System.out.println("kolumny"+sumniePaKo + " ");

        System.out.println("Maksymalna = " + max);
            System.out.println("Druga = " + secend);




    }}
0

A o którą część chodzi?

0

@Piotr33:

Pora nauczyć się debugera.
Ostatecznie w takich zadaniach nie chodzi o wiekopomne liczby w wyniku (pi, e i stała Plancka juz zostały jakiś czas temu wynalezione), a o nauczenie się rowiazywnaia pojawiających się problemów

Kod jest szczególnie nieatrakcyjny, aby obcemu w niego wchodzić
Formatowanie
Nazwy zmiennych (kij że polskie, ale mylące / nicniemówiace)

0

Weź sobie to podziel na mniejsze kawłki może wpierw
Wygeneruj tablicę N x N - wypisz sobie co tam jest jeśli nie jesteś pewnien czy generujesz to dobrze => System.oyt.println(Arrays.toString(twoja_tablica))
Co do przekątnych to bóg jeden wie co kombinujesz :P

for(int i = 0; i < tab.length; i++){
  for(int j = 0; j < tab.length; j++){
      if(i == j){ // to jest warunek na przekątną
        // twoje obliczenia
      }
  }
}
0

ale bałagan ;]
polecam od razu zastosować się do ogólnie przyjętych reguł pisania w OOP i Javie. Np. nazwa klasy powinna być owszem camelCase, ale zaczynająca się z wielkiej litery.
W kodzie można wydzielić 3 metody dla tych zagnieżdżonych forów. Zagnieżdżeń forów raczej się nie uniknie, bo są dwuwymiarowe tablice.
no i najtrudniejsze - nazewnictwo zmiennych i metod ;)

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.