• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyszukiwanie najmniejszego elementu z tablicy losowo wygenerowanych intów

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
86 wizyt
pytanie zadane 4 grudnia 2022 w Java przez magda0192 Nowicjusz (120 p.)

Hej Wszystkim,

Mam zadanie, do którego co prawda mam odpowiedź, wiem też że jest prawidłowa i kod działa jak powinien, ale niestety nie do końca rozumiem dlaczego tak a nie inaczej... Chodzi o utworzenie 100 elementowej tablicy, przypisanie jej losowych wartości od 1 do 100 i znalezienie oraz wypisanie najmniejszej liczby z tablicy. Kod:

int[] array = new int[100];
Random random = new Random();

int result = Integer.MAX_VALUE;
for (int i = 0; i < array.length; i++) {
    array[i] = random.nextInt(1, 101);
    System.out.println(array[i]);
    if (array[i] < result) {
        result = array[i];
    }
}

System.out.println("Najmniejsza liczba to " + result);

Teraz pytanie - dlaczego musimy się tu odnieść do Integer.MAX_VALUE?

Skoro Integer.MAX_VALUE wynosi 2147483647 to nie jest tak, że każdy z elementów tablicy będzie mniejszy biorąc pod uwagę że to będzie wartość od 1 do 100?

Jestem totalnie zagubiona :( Może ktoś będzie w stanie mi to wyjaśnić krok po kroku.

Z góry bardzo dziękuję!

Magda

4 odpowiedzi

+1 głos
odpowiedź 5 grudnia 2022 przez SzkolnyAdmin Szeryf (79,900 p.)
W ogólnym przypadku zmienną result (przechowuje najmniejszą/największa poszukiwana wartość w tablicy) inicjuje się zawartością pierwszej komórki tablicy, czyli u ciebie array[0].
komentarz 5 grudnia 2022 przez magda0192 Nowicjusz (120 p.)

Dziękuję!smiley

+1 głos
odpowiedź 5 grudnia 2022 przez Wiciorny Ekspert (246,130 p.)

Sugestia, czasami "dokumentacja" jest wstanie odpowiedzieć na pytanie. Szczególnie jeśli używana jest stała wbudowana w język,  a nie będąca autorstwem aktualnego implementatora 
Integer.MAX_VALUE

Służy do automatycznego przypisania dowolnej zmiennej maksymalnej możliwej liczby całkowitej bez konieczności zapamiętywania dokładnej liczby. Dla przypadków w których konieczne jest ustalenie maksymalnej lub minimalnej liczby. Może to być ze względów porównawczych lub jakichkolwiek innych . Zapamiętanie dokładnej stałej może być trudne i generować nieoczekiwane zachowanie aplikacji lub rezultaty operacji arytmetycznych.
Ta praca zostaje ułatwiona dzięki  właśnie Integer.MAX_VALUE .

https://en.wikipedia.org/wiki/2,147,483,647
Dobrze też to pomaga przy sytuacji negatywnych wartości lub możliwości ich wystąpienia 

0 głosów
odpowiedź 4 grudnia 2022 przez Jaaqob Stępień Użytkownik (760 p.)
Chodzi o to żeby przy pierwszym sprawdzeniu zawsze wartość z tablicy była mniejsza niż wartość początkowa zmiennej result.
komentarz 5 grudnia 2022 przez magda0192 Nowicjusz (120 p.)

Dziękuję!smiley

0 głosów
odpowiedź 4 grudnia 2022 przez VBService Ekspert (218,830 p.)

W tym konkretnym przypadku, gdzie mamy przedział liczb losowanych od 1 do 100, zainicjowanie zmiennej result największą możliwą wartością, czyli 100, też spełni swoje zadanie, żeby przy pierwszej iteracji

for (int i = 0; i < array.length; i++) {
    array[i] = random.nextInt(1, 101);

prawidłowo zadziałał warunek

if (array[i] < result)

 

komentarz 5 grudnia 2022 przez magda0192 Nowicjusz (120 p.)

Bardzo dziękuję za pomocsmiley

Podobne pytania

0 głosów
2 odpowiedzi 611 wizyt
pytanie zadane 23 lutego 2017 w Java przez drag2 Nowicjusz (170 p.)
0 głosów
1 odpowiedź 364 wizyt
pytanie zadane 19 sierpnia 2020 w C i C++ przez hakiri Nowicjusz (120 p.)
+2 głosów
1 odpowiedź 180 wizyt
pytanie zadane 9 lipca 2020 w C i C++ przez nanautzin Obywatel (1,010 p.)

90,401 zapytań

139,013 odpowiedzi

311,501 komentarzy

60,082 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...