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.

C - Sortowanie, trzy dowolne prostokąty

TheSevcio 04 Mar 2016 12:26 2460 7
  • #1 04 Mar 2016 12:26
    TheSevcio
    Poziom 8  

    Witam. Mam program który ma policzyć pola, trzech dowolnych prostokątów, potem te pola posortować. Wszystko wydaje się być dobrze, tyle, że nie chce sortować, gdzie leży błąd?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 7
  • Pomocny post
    #2 04 Mar 2016 14:12
    Hyde911
    Poziom 24  

    - po co definiujesz trzy różne funkcje, które robią dokładnie to samo??
    - zastanów się jaki efekt przynoszą trzy ostatnie instrukcje warunkowe w funkcji "sortowanie" ??

    0
  • #3 04 Mar 2016 14:30
    TheSevcio
    Poziom 8  

    Dzięki za pomoc :) Tak rozumiem, że jest w porządku?

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 04 Mar 2016 14:38
    Hyde911
    Poziom 24  

    Tak.
    Ale jeśli naprawdę chcesz poćwiczyć sortowanie, to powinieneś pobawić się sortowaniem tablic w pętli. Spróbuj zaimplementować kilka ogólnie dostępnych algorytmów.

    0
  • #5 27 Lip 2016 15:59
    JacekCz
    Poziom 35  

    Hyde911 napisał:
    Tak.
    Ale jeśli naprawdę chcesz poćwiczyć sortowanie, to powinieneś pobawić się sortowaniem tablic w pętli. Spróbuj zaimplementować kilka ogólnie dostępnych algorytmów.


    Zgadzam się. Uczenie się 'dziwnego' programowanie to dziwne uczenie

    @TheSevcio
    od źle nadanych nazw biorą się niepewne/błędne programy, zwłaszcza jak projekt urośnie. W rzeczywistości funkcja sort powinna się nazywać zamiana albo exchange bo nie ma w niej żadnego elementu decyzyjnego (w "innym życiu" mógłby być, owszem).

    0
  • #6 05 Sie 2016 07:50
    upanie
    Poziom 21  

    Taka zamiana zazwyczaj nazywa się 'swap'.

    Pomijając fakt, że sortowanie jest realizowane przez wiele ogólnych algorytmów to w C masz np. qsort() .

    0
  • #7 15 Wrz 2016 11:02
    Tomator.pl
    Poziom 10  

    Należy unikać przekazywania parametrów przez wskaźnik, a użyć raczej referencji. Obecnie można napisać sort(0,1), co skończy się wyjątkiem podczas działania programu. Gdyby funkcja przyjmowała referencje, kod byłby bezpieczny, a próbę podania stałych odrzuciłby już kompilator.

    0
  • #8 21 Wrz 2016 19:07
    Rezystoreczek
    Poziom 20  

    lepiej byłoby zrobić tu ogólny przypadek, może strukturę prostokąta i wtedy N tych struktur sortować, np tak:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    :D

    0