【问题标题】:Printing Average of Positive Numbers打印正数的平均值
【发布时间】:2014-11-19 15:39:03
【问题描述】:

如何使用 php 进行此练习? 编写一个程序,要求用户输入正数,或者通过输入一个小于 1 的数字来停止。打印平均值。使用 do-while 循环。

Enter Number : 3
Enter Number : 5
Enter Number : 11
Enter Number : 1
Enter Number : 0
Average : 5


Enter Number : 31
Enter Number : 4
Enter Number : 4
Enter Number : -12
Average : 13

我试着像这样完成它。

do {
echo 'Enter a number: ';
$number = trim(fgets(STDIN));
if($number < 1) {
    break;
}
$sum += $number;
++$count;
} while(true);


$avg = $sum / max($count,1);

//}
echo("Average : ".$avg);
exit;
?>

【问题讨论】:

  • 这似乎不是 PHP 真正为之设计的。这个练习的目的是什么?
  • &lt;?php 开始代码,似乎对我有用...
  • 到底是什么问题?除了由于您使用变量而不初始化它们而引发通知这一事实之外,您的代码为我完成了这项工作......
  • 猜他也需要检查不正确的输入。

标签: php average


【解决方案1】:

唯一需要做的就是将从标准输入收到的值转换为整数(所有来自标准输入的都是字符串):

- $number = trim(fgets(STDIN));
+ $number = (int)trim(fgets(STDIN));

希望对你有帮助。

【讨论】:

    【解决方案2】:

    您的代码对我来说运行良好,除了有一些未初始化的变量,例如 $sum$count

    这是另一种方式。

    在 PHP 中有内置的函数。

    <?php
    do {
        echo 'Enter a number: ';
        $number = trim(fgets(STDIN));
        if ($number < 1 || !is_numeric($number)) {
            break;
        }
        $numbers[] = $number;
    } while (true);
    
    
    $avg = array_sum($numbers) / count($numbers);
    echo("Average : " . $avg);
    exit;
    

    【讨论】:

      【解决方案3】:

      谢谢,我会试试的。我在搜索交互式 php 学习网站时遇到了这个练习。在 programmr 站点上找到它....它是基于用户的站点,所以也许有人试图将这种练习从 Java 转换为 php 或类似的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多