Как я могу сделать это упражнение, используя php?
Напишите программу, которая запрашивает у пользователя вводить положительные числа или останавливается, набирая число меньше 1. Распечатайте средний цикл использования.
Enter Number : 3
Enter Number : 5
Enter Number : 11
Enter Number : 1
Enter Number : 0
Average : 5Enter 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;
?>
Единственное, что нужно, — привести значение, полученное из стандартного ввода, к целому числу (все, что пришло из stdin — это строка):
- $number = trim(fgets(STDIN));
+ $number = (int)trim(fgets(STDIN));
Надеюсь, поможет.
Ваш код работает нормально для меня, за исключением некоторых неинициализированных переменных, таких как $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;
Спасибо, я попробую это. Я наткнулся на это упражнение в поиске интерактивного сайта обучения php. Нашел его на сайте programmr …. Это сайт, основанный на пользователях, так что, возможно, кто-то пытался перенести это упражнение с Java на php или что-то в этом роде.