Zadanie z tablicą dwuwymiarową

0

Cześć,

Mam kod do napisania z pętlą while. Wygląda jak poniżej, efektem ma być wypełnienie tablicy 1 - 10. Niestety tylko wypełnia mi pierwszy wiersz dla i=0.
Byłby ktoś w stanie wskazać mi co mam nie tak w kodzie?

public class Cwiczenie_12_2 {

    public static void main(String[] args) {
       int[][] tab = new int[4][];

int licznik = 1;
int i=0;
int j = 0;

while(i < tab.length){
tab[i]=new int [4-i];
System.out.print("tab[" + i + "] = ");
while(j<tab[i].length){ 
tab[i][j] = licznik;
System.out.print(tab[i][j] + " ");
licznik++;
j++;
}
i++;
System.out.println("");
}
                                            }
                                                }
1
  • sformatuj kod używając ```
  • opisz lepiej co ma być efektem końcowym bo nie rozumiem efektem ma być wypełnienie tablicy 1 - 10

UPDATE, nie zerujesz j po wyjściu z wewnętrznej pętli :D

0

To ma być przekształcenie poniższego kodu:

class Main {
public static void main (String args[]) {
int[][] tab = new int[4][];
tab[0] = new int[4];
tab[1] = new int[3];
tab[2] = new int[2];
tab[3] = new int[1];
int licznik = 1;
for(int i = 0; i < tab.length; i++){
for(int j = 0; j < tab[i].length; j++){
tab[i][j] = licznik++;
}
}
for(int i = 0; i < tab.length; i++){
System.out.print("tab[" + i + "] = ");
for(int j = 0; j < tab[i].length; j++){
System.out.print(tab[i][j] + " ");
}
System.out.println("");
}
}
}
1

Ale przecież odpowiedziałm ci:

public class Cwiczenie_12_2 {

    public static void main(String[] args) {
        int[][] tab = new int[4][];

        int licznik = 1;
        int i = 0;
        int j = 0;

        while (i < tab.length) {
            tab[i] = new int[4 - i];
            System.out.print("tab[" + i + "] = ");
            while (j < tab[i].length) {
                tab[i][j] = licznik;
                System.out.print(tab[i][j] + " ");
                licznik++;
                j++;
            }
            // tutaj brakuje zerowania zmiennej j
            i++;
            System.out.println("");
        }
    }
}

A w zasadzie jeszcze lepsza byłaby wersja :

public class Cwiczenie_12_2 {

    public static void main(String[] args) {
        int[][] tab = new int[4][];

        int licznik = 1;
        int i = 0;

        while (i < tab.length) {
            tab[i] = new int[4 - i];
            System.out.print("tab[" + i + "] = ");
            int j = 0;
            while (j < tab[i].length) {
                tab[i][j] = licznik;
                System.out.print(tab[i][j] + " ");
                licznik++;
                j++;
            }
            i++;
            System.out.println("");
        }
    }
}
0

W Javie (inaczej niż w JS) length to metoda nie właściwość, więc .length()!

0
Manna5 napisał(a):

W Javie (inaczej niż w JS) length to metoda nie właściwość, więc .length()!

Nie masz racji :P
A przynajmniej dla tablic nie masz racji, bo dla stringów masz rację, tylko że nikt tu nie mówił o stringach, ani tym bardziej o JSie :P

1

Pomyliłem się... myślałem że jest w tekstach i tablicach jest to samo.

0

Bardzo dziękuję. Mam nadzieję że za 9 miesięcy też będę mógł pomagać w taki sposób..

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