Tablice java - pomoc i sprawdzenie zadania :D

0

Cześć,
Mam następujące zadanie z tablic w Javie:

Zadeklaruj tablice zmiennych typu double o rozmiarze 10 elementów zainicjowana
wartosciami 0. A nastepnie:
wypełnij tablice losowymi liczbami
wyswietl na ekranie zawartosc całej tablicy
wyswietl na ekranie tylko liczby o parzystym indeksie
wyswietl na ekranie tylko elementy tablicy, których przekonwertowane na int
wartosci sa nieparzyste

Sprawdzi ktoś mój kod? Czy jest dobry czy nie?

double tab[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
        Random r = new Random();
        for (int i = 0; i < tab.length; i++){
            // Wypełnij tablice losowymi elementami i wyświetlenie wszystich elementów
            tab[i] = r.nextDouble();
            System.out.println(tab[i]);
        }
          //Elementy o indexie parzystym
        System.out.println("========");
        for (int i = 0; i < tab.length; i++) {
            if(i % 2 == 0) {
                System.out.println(tab[i]);
            }
        }
0

Nie możesz po prostu uruchomić i zobaczyć czy speniła warunki?

Bro tip, zamiast tego

       for (int i = 0; i < tab.length; i++) {
            if(i % 2 == 0) {

możesz

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

zamiast {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; mozesz zrobic new double[10], jest to bardziej praktyczne (tablica domyslnie jest zerowana).
generalnie twoj kod wydaje sie ok, ale zadanie jest jak dla mnie niejasne, mianowicie wyswietl na ekranie tylko elementy tablicy, których przekonwertowane na int wartosci sa nieparzyste jest deko bez sensu poniewaz praktycznie kazda wartosc double z z zakresu zwracanego przez nextDouble jest rowna 0 po skonwertowaniu do inta, no chyba ze chodzi o zaokraglenie, ale wtedy sprawdzanie parzystosci ma maly sens bo wartosc bedzie 0 lub 1

1

Takie małe pytanie - czy zamiast:

tab[i] = r.nextDouble();

nie możesz np. dać:

tab[i] = r.nextDouble() * 100;

Szukanie liczb nieparzystych w takim zakresie miało by chyba więcej sensu.

0

Proponuję ten double przed konwersją na int (ostatni punkt) pomnożyć przez arbitralnie wybraną liczbę, np. 10.

czyli

for(double d: tab) {
    if (Math.round(d * 10.0) % 2 != 0) {
    //...
    }
}

Edit: a w zasadzie to w trakcie wypełniania tablicy - j.w.

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