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

0

Как это сделать, используя 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;
?>
  • 0
    Это похоже на то, для чего PHP действительно не предназначен. Какова цель этого упражнения?
  • 1
    Запустите код с <?php , кажется, работает для меня ...
Показать ещё 2 комментария
Теги:
average

3 ответа

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. Нашел его на сайте programr.... Это пользовательский сайт, поэтому, возможно, кто-то пытался трансформировать этот вид упражнений с Java на php или что-то в этом роде.

0

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню