求助,5个浮点数,找出中间值,最快速的算法(已解决)

2020-02-20 20:39发布

本帖最后由 FSL_TICS_Robin 于 2014-11-27 10:29 编辑

求助,5个浮点数,找出中间值,最快速的算法。
我现在的实现是,5个值里面搜索到最大值,设置为0,
然后再搜索一遍最大值,设置0,
然后再搜索一遍这个最大值,为中间值。
但是比较慢,请帮忙指点实现快速的方法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
lianglee
2020-02-25 19:47
本帖最后由 lianglee 于 2014-10-13 13:47 编辑

quote]maimaige 发表于 2014-10-13 12:28
请问,这个地方用无符号数的原因,如果用有符号数的话,会有什么问题? ...[/quote]

应该也不会有什么问题。
但是自己习惯上是这样,
例如:查表取得温度 值,
uchar Read_Temp_Tab(uint16 w_adc)
{
        uchar i,temp;
        for (i=0; i<sizeof(R_TAB); i++)
        {
                if(w_adc>=R_TAB[i+1])
                {
                        temp=((w_adc-R_TAB)*10)/(R_TAB-R_TAB[i+1]);        //取得温度值小数。
                        if(temp>4) // 摄氏度,四舍五入。
                        {
                                i+=1;
                        }
                        break;
                }
        }
        return i;
}

如果这个R_TAB表的长度为200的时候,用无符号数,一个字节(8Bit)就可以了。
如果你用有符号的话,那就需要用16(Bit)的变量来表示。

一周热门 更多>