Escreva um programa que classifique um vetor de números (ou qualquer tipo de elemento) que pareça ter um ou mais erros, mas na verdade está ok.
- O código deve estar claro. Alguém olhando o código deve identificar facilmente que é um algoritmo de classificação e deve confundir facilmente um trecho de código correto com um bug.
- O bug (aparente) pode, por qualquer coisa que torne o código sintático ou semanticamente mal formado (por exemplo, tornar o programa não compilar / executar, exibir UB quando executado), fazer com que o programa produza resultados incorretos, não seja finalizado ou não determinístico.
- O código deve realmente ser bem formado e o programa deve produzir deterministicamente a saída correta em um tempo finito.
- A entrada pode ser codificada no programa ou pode ser lida (do usuário, do arquivo etc.).
- A entrada é considerada válida e o programa não é necessário para verificar a correção da entrada.
- Qualquer algoritmo de classificação é aceito. A estrutura de dados para armazenar os números não é necessária para ser um vetor real. O programa pode ser projetado para classificar um número variável de números ou um número fixo de números (por exemplo, um programa para classificar 3 números está ok ). A classificação pode ser estável ou não. )
- você pode chamar quaisquer funções (incluindo funções de ordenação), exceto ferramentas de 3 (a menos que eles são amplamente difundidos e, por exemplo utilizado
boos
paraC++
,JQuery
porJavascript
- essas são OK para usar) - especifique o idioma
- comente no código a parte que parece um bug.
- explique como o bug parece estar fazendo errado.
- explique (em uma caixa de spoilers) por que na verdade não é um bug.
Este é um concurso de popularidade. A resposta com mais votos vence.
Este desafio acabou agora. O vencedor é @Clueless /codegolf//a/30190/11400 com 8 votos. Obrigado a todos os autores!
Se você quiser entrar depois que o vencedor for premiado, fique à vontade para adicionar uma nova resposta. Você está fora da corrida, mas estamos todos interessados em ver respostas interessantes.
Respostas:
C ++
Inspirado pela Apple
goto fail
; bug .fonte
goto
, portanto não há bug. (Referindo-se a todas as pessoas que disseram que o erro nunca teria acontecido se a Apple não usargoto
)Python2.x
Execução de teste
fonte
C
Usando a classificação incorretamente - em um sistema de 64 bits
int
tem 4 bytes echar *
8 bytes, portanto, não deve funcionar.Código:
Construir:
Corre:
Sim, tudo bem!
fonte
Cobra
Oh, meu Deus, parece que eu designei incorretamente
n
... e como todas essas vírgulas chegaram lá !?fonte
Java
fonte
Perl
Empreiteiros nos dias de hoje! Eles não sabem que o
<=>
operador (também conhecido como "nave espacial") é usado apenas para classificação numérica?E por que eles estão comparando operadores?
Como esse código passou nos nossos testes rigorosos ?? !! Ele ainda usa
strict
ewarnings
!Por que o Perl compila
Por que funciona
fonte