Based on @Rohith's answer
int check(int a,int b,int c)
{
return !((a^b)|(b^c));
}
(please support him if you reproach mine)
if you do not want !:
int check(int a,int b,int c)
{
unsigned int d = (unsigned int) ((a^b)|(b^c)); /* 0 if equal, non-zero otherwise */
d |= d>>32; /* set bit n if bit n+32 set - only needed for 64 bit int platforms */
d |= d>>16; /* set bit n if bit n+16 set */
d |= d>>8; /* set bit n if bit n+8 set */
d |= d>>4; /* set bit n if bit n+4 set */
d |= d>>2; /* set bit n if bit n+2 set */
d |= d>>1; /* set bit n if bit n+1 set */
return (int)((~d) &1);
}
which, I think, is a little easier than him.