難読化された C コード コンテストの 1988 エントリである次のコードを実行しようとしています。
#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 を使用しています。