zoukankan      html  css  js  c++  java
  • 寻找一组数的最大值并统计出现次数

    题目如下:

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

    寻找最大值和它的出现次数
    
    问题描述:
    请书写一个能读取一组整数的程序,寻找其中的最大值并统计出现次数。
    假设最后一个输入数字为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));
    ?>

    效果如图:

     

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

  • 相关阅读:
    再见2011,展望2012!
    软件测试经验分享
    常用window命令
    测试报告编写
    酒桌上的计算机网络
    OA压力测试案例
    FileSystemObject和Folders使用详细介绍
    关于盘点的问题汇总
    PB 图表数据窗口操作
    sqlserver2005中行转列的方法
  • 原文地址:https://www.cnblogs.com/lizhaoyao/p/7975747.html
Copyright © 2011-2022 走看看