首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求三个数的当中数的程序,自己的总有点别扭?

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

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

    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]; 
}

热点排行