在不使用关系运算符的情况下判断最小值

如何在不使用关系运算符的情况下,判断输入的三个数的最小值
使用语音:c语言


int min(int a, int b, int c)
{
    return ((a - b) >> 31) && ((a - c) >> 31) ? a : (b - c) >> 31 ? b : c;
}
int main()
{
    int a, b, c;
    scanf("%d%d%d",&a,&b,&c);   
    int m = min(a, b, c);
    printf("%d\n", m);
    system("pause");
    return 0;
}

这简单啊,作差法,正数还可以坐商

相减,若结果为负数,则最高位肯定是1,用这个条件能求出最小值。