寻找一组数的最大值并统计出现次数

题目如下:

用我蹩脚的英文水平翻译如下:

寻找最大值和它的出现次数

问题描述:
请书写一个能读取一组整数的程序,寻找其中的最大值并统计出现次数。
假设最后一个输入数字为0。比如说你输入 3 5 2 5 5 5 0,那么这个程序就能找到最大值是5并且统计5的出现次数是4(提示:定义两个变量,max和count。max存储最大的数字,count存储最大值的出现次数。
最初赋值第一个数为max并把count赋值为1,遍历剩下的数字并与之做比较。
如果这个数大于max,则把它赋值为max,同时重置count为1,如果这个数等于max,则把count自增1)

这是demo样例

根据题意写出代码如下:

<?php
$array=array(3,5,2,5,5,5,0);
function find_max_count($array=array())
{
    $array=array_values($array);//强制性转换为索引数组
    if(empty($array))
    {
        return false;//如果数组为空 则立刻返回false
    }
    $length=count($array);//统计数组长度
    $max=$array[0];//取出第一个作为最大值
    $count=1;//初始化设定统计次数为1
    for ($i=1; $i <$length ; $i++)
    {
        if($array[$i]>$max)
        {
            $max=$array[$i];$count=1;//如果当前遍历元素大于最大值,说明要重新赋值最大值并重置统计次数为1
        }elseif($array[$i]==$max)
        {
            $count++;//如果等于最大值说明还是它,将出现次数+1
        }else
        {
            continue;//这说明是小于最大值的 直接跳过
        }
    }
    return array("max"=>$max,"count"=>$count);//返回统计结果
}
var_dump(find_max_count($array));
?>

效果如图:

 

这是根据题意的方法,我这里提供另外一种思路

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值