如何在不使用 array_sum 或任何其他函数的情况下从数组中获取平均数?

我的任务是编写程序,使用空数组和 rand 函数给出从 9 到 99 的 20 个数字,但我所做的第二步是计算并获得平均数。


使用像 array_sum 这样的函数我可以得到我想要的,但这个想法不是使用任何数组函数,只是算术运算符


$arrNums = array();

$sum = 0;

$intTotalNum = 20;


for($i = 0; $i < $intTotalNum; $i++) {

  $intRand = rand(9, 99);

  $arrNums[] = $intRand;

  $sum = $sum + $arrNums;

  $average = $sum / count($arrNums);

}



var_dump($arrNums);

echo "<br>";

echo $average;

代码给了我一个错误“不支持的操作数类型”


开心每一天1111
浏览 199回答 3
3回答

慕娘9325324

这是不使用数组函数即可实现的方法:$arrNums = array();$sum = 0;$intTotalNum = 20;for($i = 0; $i < $intTotalNum; $i++)&nbsp;{&nbsp; $intRand = rand(9, 99);&nbsp; array_push($arrNums,$intRand);&nbsp; $sum = $sum+$intRand;}echo '<pre>';print_r($arrNums);echo "<br>";echo $sum;//echo $average;只需将您的添加$sum到当前$intRand并将其打印在循环之外。我使用array_push函数的原因是,您可以在 for 循环之外打印所有数组元素并检查和验证生成了多少个数字。如果您不想打印数组,则不需要,您可以注释或删除它。

白衣非少年

只需将 $average 放在 for 循环之外&nbsp; &nbsp; $arrNums = array();&nbsp; &nbsp; $sum = 0;&nbsp; &nbsp; $intTotalNum = 20;&nbsp; &nbsp; for($i = 0; $i < $intTotalNum; $i++) {&nbsp; &nbsp; &nbsp; $intRand = rand(9, 99);&nbsp; &nbsp; &nbsp; $arrNums[] = $intRand;&nbsp; &nbsp; &nbsp; $sum += $intRand;&nbsp; &nbsp; }&nbsp; &nbsp; $average = $sum / $intTotalNum;&nbsp; &nbsp; var_dump($arrNums);&nbsp; &nbsp; echo "<br>";&nbsp; &nbsp; echo $average;

慕的地6264312

您正在尝试使用数组添加整数,这就是错误“不支持的操作数类型”的原因。您可以像这样更轻松地获得平均值&nbsp; &nbsp; $sum = 0;&nbsp; &nbsp; $intTotalNum = 20;&nbsp; &nbsp; $arrNums = array();&nbsp; &nbsp; for($i = 0; $i < $intTotalNum; $i++) {&nbsp; &nbsp; &nbsp; $arrNums[] = rand(9, 99);&nbsp; &nbsp; &nbsp; $sum = $sum + $arrNums[$i];&nbsp; &nbsp; }&nbsp; &nbsp; $average = $sum / $intTotalNum;&nbsp; &nbsp; var_dump($arrNums);&nbsp; &nbsp; echo "<br>";&nbsp; &nbsp; echo $average;
打开App,查看更多内容
随时随地看视频慕课网APP