Я пытаюсь выполнить следующий код, который является записью 1988 года конкурса кодов с запутанным кодом.
#define _ -F<00||--F-OO--;
int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Исходя из описания записи, этот код вычисляет число Пи, глядя на его собственную область. Я успешно скомпилировал его без изменения кода. Но когда я выполнил, это дает мне значение 0,25, что я ожидаю, это 3,14. В описании кода говорится, что оно в K & R C, и оно не работает правильно в ANSI C без каких-либо изменений. Я думаю, что я должен сделать те изменения, чтобы выполнить это должным образом. У меня нет опыта работы с K & R C. Поэтому кто-то может мне помочь изменить приведенный выше код на ANSI C или указать на проблемы, если таковые имеются. Я использую Microsoft Visual Studio 2008 для выполнения этого.