Próbuję wykonać następujący kod, który jest 1988 wpisu Obfuscated C Code Contest.Jak przekonwertować z K & R C do 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()
{
_-_-_-_
_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_-_-_-_-_
_-_-_-_-_-_-_-_
_-_-_-_
}
Z opisu pozycji ten kod oblicza pi, patrząc na własny obszar. Z powodzeniem skompilowałem go bez zmiany kodu. Ale kiedy wykonałem, daje mi to wartość 0.25, czego oczekuję 3,14. Opis kodu mówi, że jest w K & R C i nie działa poprawnie w ANSI C bez jakiejś zmiany. Myślę, że muszę wykonać te modyfikacje, aby wykonać je poprawnie. Nie mam żadnego wcześniejszego doświadczenia z K & R C. Czy ktoś może mi pomóc zmienić powyższy kod na ANSI C lub wskazać na ewentualne problemy. Używam Microsoft Visual Studio 2008, aby to wykonać.
Na miłość $ bóstwa dlaczego? Nie widzę tego jako najmniej użytecznego. Zakamuflowane konkursy są dobrym sposobem na pokazanie, jak "sprytnie" możesz być, ale naprawdę mają małe znaczenie w realnym świecie. Moja rada, znajdź prawdziwy problem i rozwiąż go. – paxdiablo
@Pax: + Inf za $ DEITY :) – Jacob
@Pax: -W przypadku nieskończonego bluźnierstwa :) – DVK