Проверка кода: массив случайных чисел для сортировки и расчета

<?php

//array
$lessFifty = array();
$moreFifty = array();

//number generation
for ($i = 1; i<=30; $i++) {
$number = rand(0, 100);

//Sorting <50>
if ($number < 50 ) {
$lessFifty[] = $number;
} else {
$moreFifty[] = $number;
}
}

print_r($lessFifty);
print_r($moreFifty);

//Average
echo "<p> average of values less than fifty: </p>";
array_sum($lessFifty) / count($lessFifty) ;
echo "<p> average of values greater than fifty: </p>" ;
array_sum($moreFifty) / count($moreFifty) ;
?>

Это то, что я до сих пор. Я пытаюсь сгенерировать 50 случайных чисел в диапазоне 0-100. Затем я должен отсортировать его на 50 или менее.

Я также должен рассчитать среднее, диапазон и медиану.

Когда я пытаюсь сделать до среднего и положить его в свой браузер (с включенным сервером), я получаю пустую страницу. Нет ошибок, просто пусто. Я также использовал PHP Sandbox, чтобы протестировать его и не получить никаких синтаксических ошибок, просто пустое окно результатов.

Как я могу это исправить, чтобы расчеты действительно происходили и показывались на странице?

-1

Решение

У вас есть проблема здесь:

for ($i = 1; i<=30; $i++) {
// ----------^

Это должно было быть $i,

Теперь о реальной проблеме. Похоже, вы отключили error_reporting и / или display_errors на вашем сервере. Это нормально на рабочем сервере, но должно быть включено на вашем сервере разработки / локального / тестирования. Посетить php tag wiki page и искать «не работает» и следуйте инструкциям там.

0

Другие решения

Ваш скрипт вызывает бесконечный цикл, и без каких-либо сообщений об ошибках вы не увидите, что вашему скрипту не хватает памяти.

Вы можете это исправить, исправив for-loop. Вы забыли положить $ до второго i:

for ($i = 1; i<=30; $i++) {
//          ^^^
// it should be
for ($i = 1; $i<=30; $i++) {

Чтобы включить отчеты об ошибках, чтобы увидеть ошибки (например, нехватка памяти) в будущем, вы можете проверить Как получить полезные сообщения об ошибках в PHP?
для дополнительной информации.


Однако ваш сценарий по-прежнему не будет печатать средние значения, которые вы рассчитали, для этого вы должны добавить echo перед обоими расчетами или вы можете использовать конкатенация объединить строки и использовать только 2 echos.

0

2 исправления $ отсутствуют i<=30; и вывод результатов эха

<?php


//array
$lessFifty = array();
$moreFifty = array();

//number generation
for ($i = 1; $i<=30; $i++) {
$number = rand(0, 100);

//Sorting <50>
if ($number < 50 ) {
$lessFifty[] = $number;
} else {
$moreFifty[] = $number;
}
}

print_r($lessFifty);
print_r($moreFifty);

//Average
echo "<p> average of values less than fifty: </p>";
echo    array_sum($lessFifty) / count($lessFifty) ;
echo "<p> average of values greater than fifty: </p>" ;
echo    array_sum($moreFifty) / count($moreFifty) ;

Альтернативный код дисплея:

echo "<p> average of values less than fifty: ".array_sum($lessFifty) / count($lessFifty)."</p>" ;
echo "<p> average of values greater than fifty: ".array_sum($moreFifty) / count($moreFifty)."</p>"
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector