C puzzle

vignesh1988i's Avatar
Banned
how will you check the relation of two numbers (greater or lesser) without using Relational operators ??????
0
manishgupta88's Avatar, Join Date: Oct 2009
Newbie Member
By comparing them using IF Else
0
vignesh1988i's Avatar
Banned
for comparing u need relational operator na , use if-else.. but the question is without relational operators how will u decide the relation between two numbers....? please
0
venami's Avatar, Join Date: Dec 2008
Ambitious contributor
You can do it using the following logic:

Let us assume the numbers to be x and y.

Code:
if(x/y)
    printf("x is greater");
else
    printf("y is greater");
Logic:
If you divide a smaller number by a greater number the result will be "zero".

case 1: x<y
(x/y) results "0", in turn makes the condition if(o) => if(false) and so the else part is executed.

case 2:x>y
(x/y) results some positive value, in turn makes the condition to if(true) and so if part is executed.
0
vignesh1988i's Avatar
Banned
hmm.. it's correct good...... but take the worst case , take 'x' and 'y' to be same......... so let us assume x=90 , y=90 , is 90>90 or 90<90 , this statement is false..... so in ur logic , the ur if() will be true for u....... actually it mustt be false.........

and my question is for alll operators , and not only fot > & < , also for >= , <= and ==..... and i ll say a clue , in all relational operators only one thing will change entirely, by changing that u can write the logic and check it......

thank u
0
venami's Avatar, Join Date: Dec 2008
Ambitious contributor
Quote:
Originally Posted by vignesh1988i View Post
and my question is for alll operators , and not only fot > & < , also for >= , <= and ==..... and i ll say a clue , in all relational operators only one thing will change entirely, by changing that u can write the logic and check it......
oh... Can you reveal the solution that you expected?
0
vignesh1988i's Avatar
Banned
just u try it sir..... it's simple.....
0
venami's Avatar, Join Date: Dec 2008
Ambitious contributor
If the two numbers are same, we can find that out using this XOR condition:

Code:
if(x^y)
  printf("Both not equal");
else
  printf("Both equal");
Logic:
If x and y are equal, then condition becomes if(0).
0
vignesh1988i's Avatar
Banned
HM-MM... for equality this is correct , for lesser or greater wat will be the logic....
0
venami's Avatar, Join Date: Dec 2008
Ambitious contributor
I have already posted the result for lesser or greater