Печать среднего положительных чисел

Как я могу сделать это упражнение, используя 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;
?>

0

Решение

Единственное, что нужно, — привести значение, полученное из стандартного ввода, к целому числу (все, что пришло из stdin — это строка):

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

Надеюсь, поможет.

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;
0

Спасибо, я попробую это. Я наткнулся на это упражнение в поиске интерактивного сайта обучения php. Нашел его на сайте programmr …. Это сайт, основанный на пользователях, так что, возможно, кто-то пытался перенести это упражнение с Java на php или что-то в этом роде.

0
По вопросам рекламы [email protected]