spyglass: $cat compare.c /* * compare two numbers without relational operators */ int cmp(int a,int b) { int g=0 ; (( ( !((b+1)/b) && (!( a/b) ) ) || ( ((a+1)/a) && (a/b) ) ) && (g=a)) || (g=b) ; return g; } int main() { int a,b; int g; printf("Enter two numbers(0 0 to exit):"); scanf("%d %d", &a , &b ); while( a && b ){ g = cmp(a,b); printf("greatest = %d ,small =%d \n", g, a+b-g ); printf("Enter two numbers:"); scanf("%d %d", &a , &b ); } } spyglass: $gcc compare.c spyglass: $./a.out Enter two numbers(0 0 to exit):10 2 greatest = 10 ,small =2 Enter two numbers:2 10 greatest = 10 ,small =2 Enter two numbers:-2 10 greatest = 10 ,small =-2 Enter two numbers:10 -2 greatest = 10 ,small =-2 Enter two numbers:-2 -10 greatest = -2 ,small =-10 Enter two numbers:-10 -2 greatest = -2 ,small =-10 Enter two numbers:-10 2 greatest = 2 ,small =-10 Enter two numbers:2 -10 greatest = 2 ,small =-10 Enter two numbers:0 0 spyglass: $