Все мы знаем, как дискуссия о том, какая операционная система является лучшей, вызвала много пламенных войн. Теперь ваша цель - предоставить решающее «доказательство» того, что ваша любимая операционная система лучше ... ах, нет, намного лучше, предоставить решающее «доказательство» того, что другая операционная система плохая.
Задача: написать программу, которая выполняет некоторые вычисления, и она работает корректно как минимум на одной ОС и неправильно на хотя бы еще одной.
- программа должна выполнить, по крайней мере, некоторые вычисления, поэтому она должна прочитать какой-то простой ввод (предпочтительно на стандартный ввод или, если хотите, из файлов, но неправильное использование байтов с прямым и обратным порядком байтов не только будет дешевым, но и очевидным) , и предоставить некоторый вывод в зависимости от ввода. Расчеты должны быть осмысленными и обоснованными, например, решение реальной жизни или математическая задача.
- Вы должны указать обе операционные системы, указав, какая из них будет работать правильно, а какая - нет. Обе операционные системы должны быть хорошо известны и примерно в одно и то же время (поэтому не DOS 1.0, а современная ОС). Рекомендуется предоставить краткое описание причины разницы (особенно если вы подозреваете, что многие этого не осознают) в тегах спойлера.
так
причина разницы должна быть тонкой, поэтому нет
#ifdef _WIN32
или похожее, пожалуйста! Помните, ваша цель состоит в том, чтобы «доказать», что эта конкретная система плохая, поэтому люди не должны быть в состоянии (немедленно) определить ваш трюк!если в вашем коде есть очень странная или очень необычная часть, вы должны обосновать это в комментариях, почему она есть. Конечно, это «оправдание» может / будет большой ложью.
Подсчет очков:
Это не гольф! Код должен быть хорошо организован и прост. Помните, ваша цель состоит в том, чтобы скрыть ошибку, чтобы люди не подозревали об этом. Чем проще код, тем менее подозрительным он является.
Победитель будет определен голосованием. Большинство голосов спустя приблизительно 10 дней после первого действительного представления выигрывает. Как правило, следует голосовать за ответы, в которых код легко читается и понимается, но ошибка хорошо скрыта, и даже если она обнаружена, ее можно отнести к ошибке, а не к злобе. Точно так же, это должно стоить гораздо больше, если ошибка просто приводит к неверному результату, а не просто вызывает сбой программы или ее отсутствие.
Как обычно, я оставляю за собой право выбрать ответ в качестве победителя, если он не превышает 10% или 1 балл ниже того, который набрал наибольшее количество голосов, по любым субъективным критериям.
make (1)
работает правильно практически на каждом Unix-боксе и неправильно на некоторых Windows-боксах. Не из-за ОС, а из-за файловых систем. Любая файловая система, которая сохраняет даты изменения файлов с низкой точностью, может работатьmake
неправильно на быстрой машине.