Задача №11. Задайте случайным образом массив из 20-ти элементов (целых чисел). Найдите минимальное число и напечатайте его.
Primary tabs
Задача из этого списка.
<?php
/* Задайте случайным образом массив из 20-ти элементов (целых чисел). Найдите минимальное число и напечатайте его. */
function createRandomArray($amountElems) {
while($amountElems > 0) {
$randomArray[] = rand(1, 99);
$amountElems--;
}
return $randomArray;
}
function findMinNumberInArray($randomArray) {
$currentMinNum = $randomArray[0]; //берём минимум из первого числа массива
foreach($randomArray as $elem) {
if($elem < $currentMinNum) {
$currentMinNum = $elem; //перезаписывает текущий минимум, если новое число из массива меньше.
}
}
return $currentMinNum;
}
$randomArray = createRandomArray(20);
$currentMinNum = findMinNumberInArray($randomArray);
echo $currentMinNum;
- Log in to post comments
- 7276 reads
melisa
Mon, 07/09/2018 - 16:25
Permalink
замечания
Исправьте.
Sver4ok
Tue, 07/10/2018 - 08:54
Permalink
Исправил
<?php /* Задайте случайным образом массив из 20-ти элементов (целых чисел). Найдите минимальное число и напечатайте его. */ function createRandomArray($amountElems) { if($amountElems <= 0) { //на случай, если вводят не натуральное число $randomArray[] = 0; } while($amountElems > 0) { $randomArray[] = rand(1, 99); $amountElems--; } return $randomArray; } function findMinNumberInArray($randomArray) { $currentMinNum = $randomArray[0]; //берём минимум из первого числа массива foreach($randomArray as $elem) { if($elem < $currentMinNum) { $currentMinNum = $elem; //перезаписывает текущий минимум, если новое число из массива меньше. } } return $currentMinNum; } $randomArray = createRandomArray(10); print_r($randomArray); echo findMinNumberInArray($randomArray);melisa
Tue, 07/10/2018 - 11:37
Permalink
Массив объявлен неверно.
Если Вы напечатаете массив после Вашего присвоения:
if($amountElems <= 0) { //на случай, если вводят не натуральное число $randomArray[] = 0; } print_r($randomArray);то увидите, что в массиве появился элемент, который имеет значение 0. Наша же задача создать пустой массив, без элементов. Это делается так:
function createRandomArray($amountElems) { if($amountElems <= 0) { //на случай, если вводят не натуральное число $randomArray[] = 0; } while($amountElems > 0) { $randomArray[] = rand(1, 99); $amountElems--; } return $randomArray; }Давайте представим, что в функцию передан 0 или число меньше 0. Тогда тело while просто никогда не будет выполнено, и скрипт перейдёт к следующей строке:
Тут-то и вылетает ошибка о том, что скрипт не знает такой переменной.
С другой стороны, если в функцию передано положительное число, объявление массива никак не повредит результату - пустой массив будет переопределён внутри while
в то время как массив может оказаться пустым. Это потенциальная ошибка.
Sver4ok
Tue, 07/10/2018 - 21:24
Permalink
Исправил
Я думал ноль должен показывать был при нуле. Ну если при нуле должен ничего не показывать, то тогда так:
<?php /* Задайте случайным образом массив из 20-ти элементов (целых чисел). Найдите минимальное число и напечатайте его. */ function createRandomArray($amountElems) { $randomArray = []; while($amountElems > 0) { $randomArray[] = rand(1, 99); $amountElems--; } return $randomArray; } function findMinNumberInArray($randomArray) { if(!empty($randomArray)) { $currentMinNum = $randomArray[0]; //берём минимум из первого числа массива foreach($randomArray as $elem) { if($elem < $currentMinNum) { $currentMinNum = $elem; //перезаписывает текущий минимум, если новое число из массива меньше. } } return $currentMinNum; } } $randomArray = createRandomArray(10); echo findMinNumberInArray($randomArray);melisa
Wed, 07/11/2018 - 18:59
Permalink
принято
в 4 строке лишние 4 отступа, а так всё верно.
принято