[ad_1]
मैंने एक प्रोग्राम लिखा जो किसी संख्या का सबसे बड़ा अंक प्रिंट करता है
#include <stdio.h> int main(){ int num , large = 0, rem = 0; scanf("%d" , &num); while (num > 0) { rem = num % 10; if (rem > large) { large = rem; } num = num / 10; } printf("the biggest digit is %d\n", large); return 0; }
यदि ठीक काम कर रहा है, लेकिन यदि मैं एक ऋणात्मक संख्या मान लेता हूं -432 इनपुट करता हूं तो यह मुझे 4 के बजाय 0 प्रिंट करता है। मैं इसे कैसे ठीक कर सकता हूं?
मैंने क्या प्रयास किया है:
…………………………………………..
समाधान 1
सी++
while (num > 0)
यह 0 से कम संख्याओं के लिए विफल हो जाएगा। परीक्षण से पहले इसे ठीक करने से पहले एक पूर्ण संख्या में कनवर्ट करें:
सी++
num = abs(num); while (num > 0)
समाधान 2
नमस्ते
सबसे पहले आपको IF(num>=0) पर WHILE लगाना चाहिए, उसके बाद ELSE में अपना नंबर पॉजिटिव करना चाहिए। उदाहरण के लिए, मैं यह (num=num-2*(num);) करता हूं। ये मेरे लिए सही है। बिल्कुल, आप इसे फ़ंक्शंस के साथ बहुत बेहतर तरीके से लिख सकते हैं।
सी++
#include<stdio.h> int main() { int num,r=0,max=0; scanf("%d",&num); if(num>=0) { while(num>0) { r=num%10; if(r>=max) { max=r; } num=num/10; } } else { num=num-2*(num); while(num>0) { r=num%10; if(r>=max) { max=r; } num=num/10; } } printf("%d",max); return 0; }
[ad_2]
コメント