输入三个值,求中间值。
扩展要求:不使用 if else , ? : , 不使用排序 。
解法一:
int median ( int a , int b , int c )
{
if ( (a-b) * (b-c) > 0 ) return b ; // a大于b 且 b大于c
else if ( (b-a) * (a-c) > 0 ) return a ; // b 大于 a 且 a大于c
else return c ;
}
解法二:
int median ( int a , int b , int c )
{
if(a>=b)
{
if ( b>=c ) return b;
else if ( a>=c ) return c;
else return a;
}
else // a < b
{
if ( a>=c ) return a ;
else if ( b>=c ) return c ;
else return b ;
}
}
解法三:
int median ( int a , int b , int c )
{
int temp ;
while( ! ( b >= a && b <= c ) && ! ( b <=a && b>= c ) )
{
temp = a ;
a = b ;
b = c ;
c = temp ;
}
return b ;
}
持续更新...