【问题标题】:Get the amount of elements higher than a particular one [closed]获取高于特定元素的元素数量[关闭]
【发布时间】:2016-04-07 22:59:26
【问题描述】:

我的 php 代码中有这个:

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB');

据此,我必须确定高于 5.5 的值的数量以及所有数字的平均值。仅使用 For 循环、if/else 构造和 count() 函数。

我已尝试自己解决此问题,但在互联网上找不到足够的信息。

【问题讨论】:

  • 我已经尝试自己解决这个问题 - 非常好!让我们看看你的努力!
  • 这是作业吗?似乎与这个非常相似:stackoverflow.com/q/36470878/3933332
  • 那么,全班同学有作业,都先来这里求解答?叹息
  • 所有数字的平均值 您是指所有高于 5.5 的数字还是数组中的所有数字?此外,要从数组中获取高于 5.5 的所有数字,您可以使用简单的 for 循环遍历数组,使用 if 语句检查值是否高于 5.5,如果将其放入新数组中。同样对于平均值,只需将所有值一起计算,您可以在同一个循环中执行此操作,然后将数字除以数组中元素的数量,即count($array)
  • @DavidWyly 家庭作业问题本身完全没问题。只要他们问得好并且on-topic 他们可以是非常好的问题。现在看看 OP 当前的代码是什么样子会很有帮助,所以我们可以专门帮助他并解释他卡在哪里以及如何解决问题。另外,当我读到它时,并不完全清楚 “所有数字的平均值” 是指高于 5.5 的所有数字还是一般数组中的所有数字。

标签: php arrays


【解决方案1】:

应该这样做:

$aNumbers = array(2,8,9,5.5,4,5.5,6,7,8,9,10,1,'NB');

const HIGH_VALUE_CUTOFF = 5.5;

$uncleanArrayCount = count($aNumbers);
$cleanArray = array();
$highValueCount = 0;
$sum = 0;

for ($i = 0; $i < $uncleanArrayCount; $i++) {
    if ($aNumbers[$i] > 0) { // catch only numbers
        $sum += $aNumbers[$i];
        $cleanArray[] = $aNumbers[$i]; // builds an array of numbers
    }
    if ($aNumbers[$i] > HIGH_VALUE_CUTOFF) {
        $highValueCount++;
    }
}

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

echo "Average: $average <br />";
echo "Numbers above " . HIGH_VALUE_CUTOFF . ": $highValueCount";

下次,发布您尝试过的内容。 '为你做作业很有趣!

【讨论】:

    【解决方案2】:

    试试这样的:

    <?php
    
        $sum = 0;
        $amount = 0;
        $aNumbers = array(2, 8, 9, 5.5, 4, 5.5, 6, 7, 8, 9, 10, 1, 'NB');
    
        foreach ($aNumbers as $value){
            if($value > 5){
                $sum += $value;
                $amount++;
            }
        }
    
        echo "Sum : " . $sum . " -  Average : ". ($sum / $amount);
    
    ?>
    

    【讨论】:

    • 我喜欢你的建议如何违反“仅用于循环”规则 - 真正的邪恶帮助,但在一定程度上有效。 :)
    • @Sven 今天 Java 太多了.. ^^
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 2014-02-22
    • 2011-10-17
    相关资源
    最近更新 更多