C puzzle

Banned
6Oct2009,09:21   #1
vignesh1988i's Avatar
how will you check the relation of two numbers (greater or lesser) without using Relational operators ??????
Newbie Member
6Oct2009,09:25   #2
manishgupta88's Avatar
By comparing them using IF Else
Banned
6Oct2009,09:43   #3
vignesh1988i's Avatar
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
Ambitious contributor
6Oct2009,11:33   #4
venami's Avatar
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.
Banned
6Oct2009,18:48   #5
vignesh1988i's Avatar
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
Ambitious contributor
8Oct2009,09:00   #6
venami's Avatar
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?
Banned
8Oct2009,23:55   #7
vignesh1988i's Avatar
just u try it sir..... it's simple.....
Ambitious contributor
12Oct2009,16:08   #8
venami's Avatar
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).
Banned
13Oct2009,07:50   #9
vignesh1988i's Avatar
HM-MM... for equality this is correct , for lesser or greater wat will be the logic....
Ambitious contributor
13Oct2009,08:50   #10
venami's Avatar
I have already posted the result for lesser or greater