打印正数的平均值

时间:2014-11-19 15:39:04

标签: php average

如何使用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;
?>

3 个答案:

答案 0 :(得分:0)

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

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

希望它有所帮助。

答案 1 :(得分:0)

您的代码对我来说很好,除了有一些未初始化的变量,例如$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;

答案 2 :(得分:0)

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