Losowanie liczb, wartosc najmniejsza i najwieksza

0

Witam, próbowałem zrobic takie oto zadanie z ksiązki pana Kubiaka. Treść:Napisz program, który za pomocą instrukcji for znajduje największą i najmniejszą liczbę ze zbioru n wylosowanych liczb
całkowitych od 0 do 99 (w zadaniu n = 5) oraz oblicza średnią
ze wszystkich wylosowanych liczb.
Dlaczego wartosc minimalna została przyrownana do maksymalnej? "min=max", czemu dwa razy przypisuje się coś innego do zmiennej suma?
czemu wartosc minimalna jest Od razu przypisana do randomu i potem jeszcze w petli for? mógłby mi ktos wytluamczyc o co tu chodzi, linijke po linijce najlepiej. Dzieki wielkie!

 int ilosc_liczb = 5, i;
                double liczba, suma = 0, min, max;
                System.out.println("Program losuje " + ilosc_liczb +  "liczb "
                        + "całkowitych od 0 do 99,");
                System.out.println("a następnie znajduje najmniejszą i największą");
                System.out.println("oraz oblicza średnia ze wszystkich wylosowanych liczb.");
                 Random r = new Random();
                 min = Math.round(100*(r.nextDouble()));
                 System.out.println();
                 System.out.print("Wylosowano liczby: " + min + ", ");
                max=min;
                suma = suma+max;
                for (i = 1; i <= ilosc_liczb-1; i++)
                {
                liczba = Math.round(100*(r.nextDouble()));
                System.out.print(liczba + ", ");
                if (max < liczba) max = liczba;
                if (liczba < min) min = liczba;
               suma = suma+liczba;
                }
                System.out.println();
                 System.out.println("największa liczba to " + max + ",");
                System.out.println("najmniejsza liczba to " + min + ",");
                System.out.println("średnia = " + suma/ilosc_liczb + ".");

0

Ten kod działa, jest z książki, czy to Twój?

1

Program losuje losową liczbę w przedziale 0 - 100, ustawia ją do zmiennej min i max oraz dodaje do zmiennej suma.
Następnie w pętli losowane jest N(ilosc_liczb) losowych wartości, które są porównywane ze zmiennymi min i max, jesli wartosc jest odpowiednio mniejsza lub wieksza to wartosc zmiennej min/max zostaje zmieniona. Wylosowana liczba dodawana jest do sumy.

1

Jak powyżej, losujemy pierwszą liczbę, ustawiamy na nią max, min i suma, a potem w pętli aktualizujemy, odpowiednio powyzsze wartości i, na koniec, drukujemy wynik.

0

Dzięki chłopaki za pomoc, ale dalej nie rozumiem. Znaczy się, wiem o co chodzi w zadaniu i jaki jest jego koncept ale naprawdę nie rozumiem czemu min=max a suma=suma+max

0

Po prostu na początku losujesz jedną liczbę, która jest podstawiona zarówno pod min i max. Jest też dodawana do sumy, z której potem liczona jest średnia.

Dlaczego tak jest? Bardzo dobre pytanie :)

0

Jak Chcesz to zrozumiec, to Rozbij sobie to na trzy zadania: liczenie minimum, maksimum i średnią.

2

naprawdę nie rozumiem czemu min=max a suma=suma+max

Tę operację wykonujesz tylko po wylosowaniu pierwszej liczby. Ponieważ masz tylko ją, to jest ona jednocześnie i liczbą minimalną i maksymalną. Dodajesz ją do sumy. Potem już dla następnych liczb leci pętla, w której porównujesz konkretne wylosowane liczby do siebie i również dodajesz je do sumy.

0

No dobra, dzięki wielkie, chyba po prostu muszę to przetrawić w swoim umyśle.
Jeeest, okej, udało się. Na początku jest losowana jedna liczba a w pętli losowane są kolejne 4 liczby...już rozumiem. Dziekuję pięknie

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