Napisz program, który sortuje wektor liczb (lub dowolnego rodzaju elementu), który wygląda tak, jakby zawierał jeden lub więcej błędów, ale w rzeczywistości jest w porządku.
- Kod musi być wyraźny. Ktoś przeglądający kod musi łatwo zidentyfikować, że jest to algorytm sortowania i musi łatwo pomylić poprawny fragment kodu z błędem.
- (Widoczny) błąd może powodować wszystko, co powoduje, że kod jest źle sformatowany lub semantycznie źle sformułowany (np. Powoduje, że program się nie kompiluje / nie uruchamia, wyświetla UB po uruchomieniu), powoduje, że program generuje niepoprawne wyniki, nie kończy lub nie jest deterministyczny.
- Kod musi być właściwie dobrze sformułowany, a program musi deterministycznie wygenerować poprawne wyjście w skończonym czasie.
- Dane wejściowe mogą być zakodowane na stałe w programie lub mogą zostać odczytane (od użytkownika, z pliku itp.).
- Dane wejściowe są uważane za prawidłowe i program nie jest potrzebny do weryfikacji poprawności danych wejściowych.
- Każdy algorytm sortowania jest akceptowany. Struktura danych do przechowywania liczb nie musi być faktycznym wektorem. Program można zaprojektować do sortowania zmiennej liczby lub stałej liczby (np. Program do sortowania 3 liczb jest w porządku ). Sortowanie może być stabilne lub nie (uwaga: program zaprojektowany do wykonywania stabilnego sortowania, który ma widoczny błąd, który sprawia, że sortowanie wygląda niestabilnie, ale w rzeczywistości nie jest to błąd: program faktycznie wykonuje stabilne sortowanie - jest poprawną odpowiedzią ).
- możesz wywoływać dowolne funkcje (w tym funkcje sortowania) oprócz narzędzi innych firm (chyba że są one szeroko rozpowszechnione i używane np.
boos
doC++
,JQuery
dlaJavascript
- są one w porządku do użycia) - określ język
- komentuj w kodzie część, która wygląda jak błąd.
- wyjaśnij, jak błąd wygląda źle.
- wyjaśnij (w polu spoilera), dlaczego tak naprawdę nie jest to błąd.
To konkurs popularności. Odpowiedź z większością głosów wygrywa.
To wyzwanie już się skończyło. Zwycięzcą jest @Clueless /codegolf//a/30190/11400 z 8 głosami. Dziękujemy wszystkim zgłaszającym!
Jeśli chcesz przyjść po przyznaniu zwycięzcy, dodaj nową odpowiedź. Nie jesteś w wyścigu, ale wszyscy jesteśmy zainteresowani, aby zobaczyć ciekawe odpowiedzi.
Odpowiedzi:
C ++
Zainspirowany przez Apple
goto fail
; błąd .źródło
goto
, dlatego nie ma błędu. (Odnosząc się do wszystkich osób, które twierdziły, że błąd nigdy by się nie zdarzył, gdyby Apple nie używałgoto
)Python2.x
Testowe uruchomienie
źródło
do
Niepoprawne użycie sortowania - w systemie 64-bitowym
int
ma 4 bajty ichar *
8 bajtów, więc nie powinno działać.Kod:
Budować:
Biegać:
Tak, wszystko w porządku!
źródło
Kobra
Ojej, wydaje mi się, że niepoprawnie przypisałem
n
... i jak się tam dostały wszystkie przecinki !?źródło
Jawa
źródło
Perl
Kontrahenci w tych dniach! Czy nie wiedzą, że
<=>
operator (aka „statek kosmiczny”) służy wyłącznie do sortowania numerycznego?I dlaczego porównują operatorów?
Jak ten kod przeszedł nawet nasze rygorystyczne testy? !! To nawet używa
strict
iwarnings
!Dlaczego Perl się kompiluje
Dlaczego to działa?
źródło