Я пытаюсь выполнить следующий код, который является записью 1988 года Obfuscated C Code Contest.Как конфертировать из K & R C в ANSI C?
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Из описания заявки этот код вычисляет pi, просматривая его собственную область. Я успешно скомпилировал его без изменения кода. Но когда я выполнил, он дает мне значение 0,25, то, что я ожидаю, составляет 3,14. Описание кода говорит, что оно находится в K & R C, и оно не работает корректно в ANSI C без каких-либо изменений. Я думаю, что я должен выполнить эти изменения, чтобы выполнить его правильно. У меня нет предыдущего опыта работы с K & R C. Так может кто-то помочь мне изменить код выше на ANSI C или указать на проблемы, если таковые имеются. Для этого я использую Microsoft Visual Studio 2008.
За любовь $ БОЖЕСТВ, почему? Я не вижу в этом ничего полезного. Обфусканные соревнования прекрасны, как способ показать, насколько «умными» вы можете быть, но они действительно мало релевантны в реальном мире. Мой совет, найти настоящую проблему и решить ее. – paxdiablo
@Pax: + Inf для $ DEITY :) – Jacob
@Pax: -Inf для бесконечного богохульства :) – DVK