题目如下:
用我蹩脚的英文水平翻译如下:
寻找最大值和它的出现次数
问题描述:
请书写一个能读取一组整数的程序,寻找其中的最大值并统计出现次数。
假设最后一个输入数字为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));
?>
效果如图:
这是根据题意的方法,我这里提供另外一种思路