I have two integer numbers. I want to find which number is greater than other one without using relational operators.

You could use sprintf to convert int numbers to string then compare them with strcmp or memcmp

if (x - y + abs(x-y)) { /* x > y */

;)

Hello...
This is Neigyl...
I'm still a newbie here...
I hope this'll help...

#include <stdio.h>
#include <stdlib.h>

int main ()
{
   int a = 11, b = 10;

   /* We didn't use a relational operator here but the definition
       of max() and min() in stdlib.h uses so. */

   printf ("The greater value is %d", max(a, b));
   printf ("\nThe lesser value is %d", min(a, b));

   /* We didn't use a relational operator here in a sense that such
       operator didn't appear inside the if. */

   if (a - b + abs(a - b))
      printf ("a is greater than b.");
   else
      printf ("a is lesser or equal than b.");

   a = b = 5;

   if (a - b)
      printf ("They are not equal.");
   else
      printf ("They are equal.");

   return 0;
   /* With the 2 scenarios above, we never used the relational operator in our program. */
}

<deleted>

It is often prudent to test around the edges.

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int cmp1(int a, int b)
{
   return a == b ? 0 : a < b ? -1 : 1;
}

int cmp2(int x, int y)
{
   if ( x - y + abs(x-y) )
   {
      return 1;
   }
   if ( y - x + abs(y-x) )
   {
      return -1;
   }
   return 0;
}

int main(void)
{
   int val[] = { 42, -5, 0, 9, INT_MIN, INT_MAX, INT_MIN + 1, INT_MAX - 1 };
   size_t i, j;
   for ( i = 0; i < sizeof val / sizeof *val; ++i )
   {
      for ( j = 0; j < sizeof val / sizeof *val; ++j )
      {
         printf("[%11d,%11d] : %2d | %2d\n", val[i], val[j], 
                cmp1(val[i], val[j]), cmp2(val[i], val[j]));
      }
   }
   return 0;
}

Let's take a look at places where the output differs.

/* my output
[         42,         42] :  0 |  0
[         42,         -5] :  1 |  1
[         42,          0] :  1 |  1
[         42,          9] :  1 |  1
[         42,-2147483648] :  1 | -1
[         42, 2147483647] : -1 | -1
[         42,-2147483647] :  1 | -1
[         42, 2147483646] : -1 | -1
[         -5,         42] : -1 | -1
[         -5,         -5] :  0 |  0
[         -5,          0] : -1 | -1
[         -5,          9] : -1 | -1
[         -5,-2147483648] :  1 |  1
[         -5, 2147483647] : -1 |  1
[         -5,-2147483647] :  1 |  1
[         -5, 2147483646] : -1 |  1
[          0,         42] : -1 | -1
[          0,         -5] :  1 |  1
[          0,          0] :  0 |  0
[          0,          9] : -1 | -1
[          0,-2147483648] :  1 |  0
[          0, 2147483647] : -1 | -1
[          0,-2147483647] :  1 |  1
[          0, 2147483646] : -1 | -1
[          9,         42] : -1 | -1
[          9,         -5] :  1 |  1
[          9,          0] :  1 |  1
[          9,          9] :  0 |  0
[          9,-2147483648] :  1 | -1
[          9, 2147483647] : -1 | -1
[          9,-2147483647] :  1 | -1
[          9, 2147483646] : -1 | -1
[-2147483648,         42] : -1 |  1
[-2147483648,         -5] : -1 | -1
[-2147483648,          0] : -1 |  0
[-2147483648,          9] : -1 |  1
[-2147483648,-2147483648] :  0 |  0
[-2147483648, 2147483647] : -1 |  1
[-2147483648,-2147483647] : -1 | -1
[-2147483648, 2147483646] : -1 |  1
[ 2147483647,         42] :  1 |  1
[ 2147483647,         -5] :  1 | -1
[ 2147483647,          0] :  1 |  1
[ 2147483647,          9] :  1 |  1
[ 2147483647,-2147483648] :  1 | -1
[ 2147483647, 2147483647] :  0 |  0
[ 2147483647,-2147483647] :  1 | -1
[ 2147483647, 2147483646] :  1 |  1
[-2147483647,         42] : -1 |  1
[-2147483647,         -5] : -1 | -1
[-2147483647,          0] : -1 | -1
[-2147483647,          9] : -1 |  1
[-2147483647,-2147483648] :  1 |  1
[-2147483647, 2147483647] : -1 |  1
[-2147483647,-2147483647] :  0 |  0
[-2147483647, 2147483646] : -1 |  1
[ 2147483646,         42] :  1 |  1
[ 2147483646,         -5] :  1 | -1
[ 2147483646,          0] :  1 |  1
[ 2147483646,          9] :  1 |  1
[ 2147483646,-2147483648] :  1 | -1
[ 2147483646, 2147483647] : -1 | -1
[ 2147483646,-2147483647] :  1 | -1
[ 2147483646, 2147483646] :  0 |  0
*/
commented: Yes indeed +31
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.