65,210
社区成员
发帖
与我相关
我的任务
分享template <class Tp>
inline const Tp& median(const Tp& a, const Tp& b, const Tp& c)
{
if (a < b)
if (b < c)
return b;
else
if (a < c)
return c;
else
return a;
else
if (a < c)
return a;
else
if (b < c)
return c;
else
return b;
}
// 下边是我以前写的代码,虽然很简单,但现在看起来还是很不错的。
assert( !((a==b) || (a==c) || (b==c)) );
if((a>b && a<c) || (a<b && a>c))
return a;
if((b>a && b<c) || (b<a && b>c))
return b;
if((c>a && c<b) || (c<a && c>b))
return c;
// 不好意思,自己又进化修改了成了一个版本。
// 这个刚改的,还没测试,还不知道稳不稳定。
assert(!((a==b) || (a==c) || (b==c)) );
return ((a>b && a<c) || (a<b && a>c)) ? a : ((b>a && b<c) || (b<a && b>c)) ? b : c;
#include<iostream>
#include<cstdlib>
using namespace std;
int main( void )
{
int a = 6, b = 5, c = 7;
int mod = a > b ? b > c ? b : (a>c ? c : a )
: a > c ? a : ( b>c ? c : b);
cout<< mod <<endl;
system( "pause" );
return 0;
}