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