• 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

VPS Starter Arubacloud
0 głosów
156 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,280 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,120 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 (251,210 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 693 wizyt
pytanie zadane 23 lutego 2017 w Java przez drag2 Nowicjusz (170 p.)
0 głosów
1 odpowiedź 721 wizyt
pytanie zadane 19 sierpnia 2020 w C i C++ przez hakiri Nowicjusz (120 p.)
+2 głosów
1 odpowiedź 558 wizyt
pytanie zadane 9 lipca 2020 w C i C++ przez nanautzin Obywatel (1,510 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...