Metoda Arrays.toString po zwiększeniu elementów tablicy wyświetla wartość NaN.

0

Witam. Mam problem zadaniem: Elementy pobranej od użytkownika tablicy typu double zwiększ o średnią
elementów z tablicy znajdujących się pod indeksami parzystymi. Tak jak w tytule po zwiększeniu wartości tablicy w konsola wyświetla wartość NaN.

 public class Zad3PPZestaw3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        sc.useLocale(US);
        int size;
        System.out.println("Enter size of array");
        size = sc.nextInt();
        double[] tab = new double[size];
        System.out.println("Enter Elements of array");
        for (int i = 0; i < size; i++) {
            tab[i] = sc.nextDouble();
            sc.nextLine();
        }

        System.out.println("Array elements after increasing: " + Arrays.toString(increasingOfArraysElements(tab)));
    }

    public static double average(double[] tab) {
        double average = 0;
        int elements = 0;
        double result = average / elements;
        for (int i = 0; i < tab.length; i++) {
            if (i % 2 == 0) {
                average += tab[i];
                elements++;
            }
        }
        return result;
    }

    public static double[] increasingOfArraysElements(double[] tab) {
        for (int i = 1; i < tab.length; i++) {
            tab[i] += average(tab);
        }
        return tab;
    }
}

Dziękuje za pomoc w rozwiązaniu problemu. Pozdrawiam

0
  1. Robisz to źle bo wyliczasz średnią za każdym razem, więc także już PO zmianie niektórych elementów
  2. Dzielisz przez 0...
        double average = 0;
        int elements = 0;
        double result = average / elements;

WTF? I jeszcze potem w ogóle tej zmiennej nie aktualizujesz. Rozumiesz że to wyrażenie result = average / elements; to nie jest funkcja i że jego wartość jest wyliczana w chwili gdzie występuje? Wyobraź sobie że masz 0 jabłek. Mama każe ci w tej chwili połowe oddać siostrze. Godzinę później przyjeżdża wujek i daje ci 2 jabłka. Ile ty masz jabłek a ile ma twoja siostra? Bo podążając logiką z twojego kodu oboje macie po 1 jabłku...

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