मैं एक सांत्वना अनुप्रयोग है कि परीक्षण और त्रुटि से एक नंबर "अनुमान" करने की कोशिश करेगा लिख रहा था छोड़ रहा है, यह ठीक है और सभी में काम किया, लेकिन यह मुझे छोड़ दिया एक खास हिस्से के बारे में सोच है कि मैं absentmindedly लिखा था,: त्रिगुट सशर्त ऑपरेटर व्यवहार जब एक अभिव्यक्ति खाली
कोड है:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,i,a,cc;
for(;;){
scanf("%d",&x);
a=50;
i=100/a;
for(cc=0;;cc++)
{
if(x<a)
{
printf("%d was too big\n",a);
a=a-((100/(i<<=1))?:1);
}
else if (x>a)
{
printf("%d was too small\n",a);
a=a+((100/(i<<=1))?:1);
}
else
{
printf("%d was the right number\n-----------------%d---------------------\n",a,cc);
break;
}
}
}
return 0;
}
अधिक विशेष बात यह है कि मुझे उलझन में
a=a+((100/(i<<=1))?:1);
//Code, code
a=a-((100/(i<<=1))?:1);
मैं ((100/(i<<=1))?:1)
इस्तेमाल किया सु बनाने के लिए है कि अगर 100/(i<<=1)
लौटे 0 (या गलत) पूरे अभिव्यक्ति 1 ((100/(i<<=1))?:***1***)
का मूल्यांकन होता है, और मैं सशर्त है कि अगर यह सच खाली ((100/(i<<=1))? _this space_ :1)
था काम करेगा का हिस्सा छोड़ दिया है, इसे सही ढंग से काम करने के लिए लगता है, लेकिन वहाँ है कि छोड़ने में कोई खतरा नहीं है फिर से सशर्त खाली का हिस्सा?
इस प्रकार की सशर्त को टर्नरी ऑपरेशन कहा जाता है। यदि आप 'टर्नरी' को शामिल करने के लिए अपनी पोस्ट को फिर से टैग या पुनः शीर्षक देते हैं तो आपको बेहतर प्रतिक्रिया मिल सकती है। –
@ सेगफॉल्ट: इसे * * सशर्त ऑपरेटर (सी में) कहा जाता है। यह * ए * टर्नरी ऑपरेटर का एक उदाहरण है जो एक सामान्य शब्द है जिसका मतलब है कि किसी भी ऑपरेटर को तीन ऑपरेंड के साथ। – JeremyP
यदि आपको संदेह है, जो इस प्रश्न का कारण बनता है, तो इसमें कोई संदेह नहीं है कि आपको सही-केस असाइनमेंट स्पष्ट करना चाहिए था। टूबोर .... गूंगा कंसोल गेम कोडिंग पर विचार न करें, क्योंकि यह एक सकारात्मक बोरडम फीडबैक है। – jpinto3912