读书人

求三个数的当中数的程序自己的总有点

发布时间: 2013-08-29 10:33:01 作者: rapoo

求三个数的中间数的程序,自己的总有点别扭??
我想看看大家怎么写,用基础知识写就行了,别太深奥。。。

    if (a<b)
{
if (a>c)
{
middle = a;
}
else
{
if (b<c)
{
middle = b;
}
else
{
middle = c;
}
}
}
else
{
if (a>c)
{
middle = c;
}
else
{
middle = a;
}
}

我想看看大家怎么写,用基础知识写就行了,别太深奥。。。
[解决办法]
if(a<b && a<c)
m = b<c?b:c;
else if(b<a&&b<c)
m = a<c?a:c;
else
m = a<b?a:b;
------解决方案--------------------


#include <utility>
template<class T> inline
T Mid(T _First, T _Mid, T _Last)
{// sort median of three elements to middle
if (_Mid < _First)
std::swap(_Mid, _First);
if (_Last < _Mid)
{// swap middle and last, then test first again
std::swap(_Last, _Mid);
if (_Mid < _First)
std:: swap(_Mid, _First);
}
return _Mid;
}

[解决办法]
二楼的模板用的挺熟啊!
我懒办法了, 排序了

//函数说明:传入三个数,返回第二大的数!
int test_func(int a, int b, int c)
{
int arr[3] = { a, b ,c};
for(int i =0; i < 2; i++)
{
if(arr[i] > arr[i+1])
{
arr[i] = arr[i]^arr[i+1];
arr[i+1] = arr[i]^arr[i+1];
arr[i] = arr[i]^arr[i+1];
}
}
return arr[1];
}

读书人网 >C++

热点推荐