Как это сделать, используя php? Напишите программу, которая запрашивает у пользователя ввод положительных чисел или остановку, набрав число меньше 1. Распечатайте цикл average.Use 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;
?>
Ваш код работает отлично для меня, кроме, есть некоторые неинициализированные переменные, такие как $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. Нашел его на сайте programr.... Это пользовательский сайт, поэтому, возможно, кто-то пытался трансформировать этот вид упражнений с Java на php или что-то в этом роде.
Единственное, что нужно - это передать полученное вами значение из стандартного ввода в целое (все, что было из stdin - строка):
- $number = trim(fgets(STDIN));
+ $number = (int)trim(fgets(STDIN));
Надеюсь, поможет.
<?php
, кажется, работает для меня ...