Why doesn't this code work in C++? -
#include & lt; math.h & gt; # शामिल करें & lt; iostream & gt; नेमस्पेस एसटीडी का उपयोग करना; Int मुख्य (शून्य) {एक एक [5]; Int foo, i, संख्या, परिणाम, बार; जबकि (1) {cin & gt; & gt; ए; Int z = a [3] - '0'; Int y = a [1] - '0'; Int x = a [0] - '0'; यदि (एक्स == 0 & amp; y == 0 & amp; amp; z == 0) तोड़; i = z; Num = y * पाउ (10, आई); i ++; Num = num + pow (10, i) * x; बार = num; जबकि (बार% 2! = 0) बार -; अदालत के & lt; & lt; संख्या से & lt; & lt; "\ t" & lt; & lt; बार के & lt; & lt; "\ n"; } वापसी 0; } मेरे पास यह कोड है जो इनपुट के रूप में xyez के स्ट्रिंग को स्वीकार करता है, जहां यह स्ट्रिंग संख्या को दर्शाता है जिसे निम्न प्रकार से समझाया गया है: संख्याओं का पहला अंक x है, इसका दूसरा अंक y है , और उसके बाद z zeros का पालन करें।
अब, मैं जो करने की कोशिश कर रहा हूं, वह संख्या को आउटपुट कर रहा है और एक नंबर की तुलना में कम मान है जो 2 की शक्ति है। इसके अलावा, मैं लॉग इन का उपयोग नहीं करना चाहता मैं एक साधारण जबकि लूप का उपयोग कर रहा हूँ लेकिन, इसे किसी भी इनपुट के लिए छपाई करने पर, जैसे कि 42 ई 0, यह आउटपुट करता है, 42 42. ऐसा क्यों हो रहा है?
समस्या यहां है, बार है 42 : जबकि (बार% 2! = 0) बार -; चूंकि प्रारंभिक मान भी है, लूप बॉडी कभी भी नहीं चलता है और चर कभी कम नहीं होता है। इस प्रकार, बार और num दोनों 42 हैं। मुझे यकीन नहीं है कि आप क्या दिखावा करते हैं, लेकिन आप ऐसा कर सकते हैं:
<कोड> bar--; अगर (बार% 2! = 0) बार -; प्रत्येक भी संख्या के आगे एक अजीब संख्या है, पहली जगह में लूप की कोई आवश्यकता नहीं है।
Comments
Post a Comment