打印

求数组中最大最小值,总是不对

[复制链接]
4305|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tianxiongweitxw|  楼主 | 2022-7-16 21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助!!!!!!求一个16个FLOAT数组元素中的最大和最小值,怎么也不对,最小就一直输出0,最大就一直输出941654200000000000000.000000.代码怎么看都没有问题,求助高手解答,谢谢.代码很简单,如下:

//求数组中最大值,向量的长度是a,首地址是这P.
float        max(float p[],u8 a)
{
         u8 i=0;
        float max=0;
    for (i=0;i<a;i++)
    {
        if(p[i]>max)max=p[i];
    }       
                     return max;
        }               
//求数组中最小值,向量的长度是a,首地址是这P.
float        min(float p[],u8 a)
{
          u8 i=0;
          float min=0;
         for(i=0;i<a;i++)
    {
        if(p[i]<min)min=p[i];
    }       
                return min;
        }
//////////

使用特权

评论回复

相关帖子

沙发
tianxiongweitxw|  楼主 | 2022-7-17 08:20 | 只看该作者
问题找到,数组越界

使用特权

评论回复
板凳
一周一天班| | 2022-7-17 20:55 | 只看该作者
不止。min初始最大或第一个值。
float        min(float p[],u8 a)
{
          u8 i=0;
          float min=p[0];
         for(i=1;i<a;i++)
    {
        if(p[i]<min)min=p[i];
    }      
                return min;
        }

使用特权

评论回复
地板
Jack315| | 2022-7-17 21:31 | 只看该作者
下列语句有 Bug :
float max = 0;
如果数据全部小于 0,则下列语句中 if 后面的赋值语句永远不会被执行。
if (p > max) max = p;
结果为:max = 0 。

同理,如果数据全部大于 0,则下列语句结果为:min = 0 。
float min = 0;
if (p < min) min = p;
声明 max、min 变量时,应将其分别赋值为 float 类型的最小值和最大值。

使用特权

评论回复
5
tianxiongweitxw|  楼主 | 2022-7-18 16:34 | 只看该作者
是的,谢谢回复。

使用特权

评论回复
6
nongshengjiang| | 2022-7-18 21:23 | 只看该作者
唉哪个学校学的?逻辑差了些啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

520

帖子

0

粉丝