我有以下代码:
<?php
echo "<p>Exercise 5:</p>";
echo "Numbers: ";
$random = 0;
while ($random < 10) {
$rand = rand(2, 80);
echo "$rand";
$random = $random + 1;
if ($random < 10) {
echo ", ";
};
}
echo "<br><br>Min value: <br>";
echo "Max value: <br>";
echo "Average value: <br>";
?>
如何计算10个数字的最小值,最大值和平均值?
$min = min($rand)
不起作用...
$max = max($rand)
也不起作用...
答案 0 :(得分:1)
$rand
是单个值,单个值的最小值无关紧要。 Min将数组作为参数(或多个值),因此请将您的值保存在数组中,例如这样。
$array = array();
while($random < 10) {
$rand = rand(2, 80);
$array[] = $rand;
$random++; // short for random = random + 1
}
echo min($array);
最大也可以使用
此外,平均值=总和/计数,您在PHP中具有array_sum和count函数,我让您知道如何做到这一点。
编辑:奥古斯丁关于零除是正确的。除以变量时,请考虑添加条件。
答案 1 :(得分:0)
一个被零除的解决方案可能是:
$random = 0;
$numbers = array();
while ($random < 10) {
$rand = rand(2, 80);
echo "$rand";
$numbers[] = $rand;
$random ++;
}
$min = min($numbers);
$max = max($numbers);
if($totalNumbers = count($numbers) > 0) {
$average = array_sum($numbers) / count($numbers);
}else{
$average = 0;
}
echo "<br><br>Min value: $min <br>";
echo "Max value: $max <br>";
echo "Average value: $average <br>";
我不明白为什么min或max不起作用,但是在这种情况下,您可以创建自定义的max min函数:
function customMaxMin($numbers)
{
$max = 0;
$min = 0;
foreach ($numbers as $number) {
$max = $number;
$min = $number;
if ($max > $number) {
$max = $number;
}
if ($min < $number) {
$min = $number;
}
}
return array('max' => $max, 'min' => $min);
}