为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
开心每一天1111 2021-12-03 10:30:31
我的任务是编写程序,使用空数组和 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;代码给了我一个错误“不支持的操作数类型”
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

这是不使用数组函数即可实现的方法:


$arrNums = array();

$sum = 0;

$intTotalNum = 20;


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

{

  $intRand = rand(9, 99);

  array_push($arrNums,$intRand);

  $sum = $sum+$intRand;

}



echo '<pre>';

print_r($arrNums);

echo "<br>";

echo $sum;



//echo $average;

只需将您的添加$sum到当前$intRand并将其打印在循环之外。


我使用array_push函数的原因是,您可以在 for 循环之外打印所有数组元素并检查和验证生成了多少个数字。如果您不想打印数组,则不需要,您可以注释或删除它。


查看完整回答
反对 回复 2021-12-03
?
白衣非少年

TA贡献1155条经验 获得超0个赞

只需将 $average 放在 for 循环之外



    $arrNums = array();

    $sum = 0;

    $intTotalNum = 20;


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

      $intRand = rand(9, 99);

      $arrNums[] = $intRand;

      $sum += $intRand;


    }


    $average = $sum / $intTotalNum;


    var_dump($arrNums);

    echo "<br>";

    echo $average;


查看完整回答
反对 回复 2021-12-03
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您正在尝试使用数组添加整数,这就是错误“不支持的操作数类型”的原因。您可以像这样更轻松地获得平均值




    $sum = 0;

    $intTotalNum = 20;

    $arrNums = array();


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

      $arrNums[] = rand(9, 99);

      $sum = $sum + $arrNums[$i];

    }


    $average = $sum / $intTotalNum;

    var_dump($arrNums);

    echo "<br>";

    echo $average;


查看完整回答
反对 回复 2021-12-03
  • 3 回答
  • 0 关注
  • 198 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信