難読化されたCコードコンテストの1988エントリーである次のコードを実行しようとしています。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:$ DEITYの+ Inf: – Jacob
@Pax:無限の冒涜のための:) :) – DVK