के रूप में काम नहीं कर रहे हैं, तो मैं तीन बराबर चर की समानता स्थापित करने की कोशिश कर रहा हूं, लेकिन निम्न कोड स्पष्ट सही उत्तर प्रिंट नहीं कर रहा है जिसे इसे मुद्रित करना चाहिए। क्या कोई समझा सकता है कि संकलक आंतरिक रूप से दिए गए if(condition)
को पार्स कर रहा है?दो '==' समानता ऑपरेटर एक ही 'अगर' स्थिति
#include<stdio.h>
int main()
{
int i = 123, j = 123, k = 123;
if (i == j == k)
printf("Equal\n");
else
printf("NOT Equal\n");
return 0;
}
आउटपुट:
[email protected]:~$ gcc -Wall -pedantic calc.c
calc.c: In function ‘main’:
calc.c:5: warning: suggest parentheses around comparison in operand of ‘==’
[email protected]:~$ ./a.out
NOT Equal
[email protected]:~$
संपादित करें:
नीचे दिए गए जवाब से जा रहे हैं, निम्न कथन ठीक समानता ऊपर जाँच करने के लिए है?
if ((i==j) == (j==k))
आप ((i == जे) && (जे == ट)) –
आपका परीक्षण संपादित की जरूरत है 'मैं == j'' जे == k' जितना समान मान है । 'I = 1', 'j = 2',' k = 3' के लिए क्या होता है? अनुमान न लें, इसे समझने का प्रयास करें: उदाहरण के लिए, '1 == 2' का मान क्या है? –
[जंजीर तुलना ऑपरेटर (x