2009-10-09 10 views
6

मैं निम्नलिखित कोड निष्पादित करने की कोशिश कर रहा हूं जो 1 9 88 में ओबफस्केटेड सी कोड प्रतियोगिता का प्रवेश है।के एंड आर सी से एएनएसआई सी में कैसे परिवर्तित करें?

#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 है। कोड विवरण का कहना है कि यह के & आर सी में है और यह कुछ बदलाव किए बिना एएनएसआई सी में सही ढंग से काम नहीं करता है। मुझे लगता है कि मुझे इसे ठीक से निष्पादित करने के लिए उन संशोधनों को करना है। मेरे पास के & आर सी के साथ कोई पिछला अनुभव नहीं है। तो क्या कोई मुझे कोड से एएनएसआई सी में बदलने में मदद कर सकता है या किसी भी समस्या को इंगित कर सकता है। मैं इसे निष्पादित करने के लिए माइक्रोसॉफ्ट विजुअल स्टूडियो 2008 का उपयोग कर रहा हूं।

+7

$ देवता के प्यार के लिए, क्यों? मैं इसे कम से कम उपयोगी होने के रूप में नहीं देख सकता। Obfuscated प्रतियोगिताओं को दिखाने के तरीके के रूप में ठीक है कि आप कैसे "चालाक" हो सकता है, लेकिन असली दुनिया में वास्तव में उनकी प्रासंगिकता है। मेरी सलाह, एक असली समस्या पाएं और इसे हल करें। – paxdiablo

+1

@ पैक्स: + $ DEITY के लिए Inf :) – Jacob

+1

@ पैक्स: - अनंत निंदा के लिए इन्फ्लो :) – DVK

उत्तर

10

यदि आपके पास जीसीसी है, तो '-traditional-cpp' ध्वज के साथ संकलित करें।

अंतर यह है कि '-_' अनुक्रम का अनुवाद '- -F<00' या '--F<00' में किया गया है।

एक स्थान महत्वपूर्ण है: यह दोहरी अस्वीकृति और पूर्व-कमी के बीच का अंतर है।

+1

से संबंधित है दुर्भाग्य से, ओपी ने अपने कंपाइलर को छुपाया आखिरी वाक्य, जब हम में से अधिकांश (खुद को कुछ सेकंड पहले तक शामिल किया गया था) पढ़ना बंद करो। वह वीएस -2008 का उपयोग कर रहा है। –

+0

हैट ऑफ, महोदय। मैंने अभिसरण प्रक्रिया देखी (कार्यक्रम वास्तव में अपने क्षेत्र से "काम नहीं कर रहा है", पुनरावृत्तियों को सिर्फ एक सुंदर फैशन में व्यवस्थित किया जाता है), लेकिन व्याख्या में यह विस्तार -_ वाह! – mjv

+0

@ क्रिस: मैंने वीएस 2008 को देखा; मेरे पास यह नहीं है। मुझे संदेह है कि वीएस -2008 -traditional-cpp के बराबर समर्थन करेगा। यही कारण है कि मैंने 'अगर' सामने रखा। –

संबंधित मुद्दे