• 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

Object Storage Arubacloud
0 głosów
157 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 (86,360 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 (269,590 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 (252,660 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 697 wizyt
pytanie zadane 23 lutego 2017 w Java przez drag2 Nowicjusz (170 p.)
0 głosów
1 odpowiedź 731 wizyt
pytanie zadane 19 sierpnia 2020 w C i C++ przez hakiri Nowicjusz (120 p.)
+2 głosów
1 odpowiedź 587 wizyt
pytanie zadane 9 lipca 2020 w C i C++ przez nanautzin Obywatel (1,510 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...