Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PHP - Największa z trzech liczb. Co robię nie tak?

dzięcioł15 18 Mar 2013 15:23 1683 3
  • #1 18 Mar 2013 15:23
    dzięcioł15
    Poziom 11  

    Kod: php
    Zaloguj się, aby zobaczyć kod


    Zgodnie ze schematem blokowym z tej strony: Link algorytm powinien działać, ale nie działa gdy największą liczbą jest zmienna b lub c. Dodałem losowanie liczb na początku, a w komentarzach dałem zestawy liczby przy których nie pokazują się dwie ostatnie odpowiedzi dla największego b i największego c. Co robię nie tak? Nie mam już pomysłu i proszę o podpowiedź.

    0 3
  • #2 18 Mar 2013 20:05
    Dżyszla
    Poziom 42  

    Nie masz połowy "drzewa"... No bo weźmy na przykład pierwszy przypadek - a>b... Wtedy sprawdzasz, czy a>c i jeśli tak, to wiesz, że a jest największe. Ale co, jeśli jest inaczej?

    Poza tym instrukcja elseif odnosi się do ostatniego warunku, jaki wystąpił! Więc zapis jest niepoprawny w tym przypadku.

    0
  • #3 23 Kwi 2013 20:49
    Mr_Unk
    Poziom 17  

    Pomijasz zupełnie kwestię równości zmiennych (a ten random wcale taki losowy nie jest).
    Zakładając, że nie uczysz się programować (bo od tego jest Pascal), czemu nie skorzystasz z f-cji max() ?
    Można też to wrzucić do tablicy i posortować.
    Pisanie z ręki czegoś takiego jest zupełnie bez sensu, ale jeśli musisz to rozrysuj sobie blokowo wszystkie możliwości i dopiero zacznij pisać - wówczas unikniesz sytuacji, gdy pomijasz któryś wariant.
    Język skryptowy to raczej średni pomysł jeśli chodzi o naukę pisania IF'ów.

    0
  • #4 24 Kwi 2013 09:55
    arnoldziq
    Moderator Programowanie

    Zaraz ktoś powie, że "idę na skróty", ale ja zastosowałbym taki kod :

    Kod: php
    Zaloguj się, aby zobaczyć kod

    Oczywiście, jeżeli chcesz wyświetlić rezultaty, to należy je przypisać najpierw jakimś zmiennym.

    0