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ą?
Czyli sama zmienna i tablica nie mogą mieć oddzielnie tej samej nazwy (int tt[] oraz int tt) ?
Nie mogą - nie skompiluje się to.
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ć.