Artur 120 wyśw. 09-07-2025 16:51

Praca domowa 3 zad 19

19. Napisz metodę typu void o nazwie wypiszTablice, która jako argument przyjmuje tablicę liczb
typu int. Metoda ma wypisać otrzymaną w argumencie tablicę w „ładnej” postaci (patrz poniżej) oraz
wyświetlić na ekranie liczbę niezerowych elementów tej tablicy.
Przykładowy wynik działania metody:
Twoja tablica: [3, 4, 1, 0, 7, 2, -6, -11, 0, 8, 13, 0, 4]
Liczba niezerowych elementów tablicy: 10


class Main 
{
    static void wypiszTablice(int tab[])
    {
        int rozmiar = tab.length;
        int ile_niezerowych=0;
        
        // Wypisywanie tablicy:
        System.out.print("Twoja tablica: [");
        for(int i=0; i < rozmiar-1; i++)
        {
            System.out.print(tab[i]+",");
        }
        System.out.println(tab[rozmiar - 1] + "]");
        
        // Zliczanie niezerowych elementow:
        for(int i=0; i < rozmiar; i++)
        {
            if(tab[i]!=0)
            {
                ile_niezerowych++;
            }
        }
        System.out.println("Liczba niezerowych elementow tablicy: "+ile_niezerowych);
        
        
    }
    
    public static void main(String[] args) 
    {
        int tt[]={3,4,1,0,7,2,-6,-11,0,8,13,0,4};
        wypiszTablice(tt);
    }
}

1 - Jak inaczej zapisać rozmiar tablicy jakby się nie pamiętało o tab.length?

2 - Dlaczego przy wywołaniu w mainie trzeba napisać wypiszTablice(tt); a nie wypiszTablice(tt[]); skoro tt[] jest tablicą?


Programowanie Dodaj post do ulubionych Poproś o pomoc
s.gugula 10-07-2025 14:56

1 - raczej nie ma innej oppcji ;)

2 - Bo nazwą samej zmiennej jest tt. A symbol [] oznacza tylko tyle, że jest to zmienna tablicowa. Ale wrzucając do funkcji tt kompilator zobaczy, że jest to tablica, więc nie trzeba go o tym informować.


Artur 10-07-2025 15:27

Czyli sama zmienna i tablica nie mogą mieć oddzielnie tej samej nazwy (int tt[] oraz int tt) ?


s.gugula 11-07-2025 20:56

Nie mogą - nie skompiluje się to.


Zadzwoń teraz Dotknij, aby się ze mną skontaktować.