Задача для начинающих №9

Задача из списка

<?php
/*
* Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой".
* @param int $n  количество элементов массива
*/
function elka($n){
    $arr = [];
    $cntInLine = 0;
    $tmpCnt = 0;
    for($i = 0; $i < $n; $i++){
        $arr[$i] = rand(-100, 100);
    }
    for($i = 0; $i < $n; $i++){
        $tmpCnt++;
        echo $arr[$i], " ";
        if($cntInLine < $tmpCnt){
            $cntInLine++;
            $tmpCnt = 0;
            echo "<br>";
        }
    }
}
elka(12);
?>
vedro-compota's picture

все работает, но такие вот моменты есть (мелочи):

1)

$cntInLine = 0;

-- все-таки в первой строке 1 элемент ожидается, а не ноль.

2) для обхода лучше использовать foreach

Решение засчитано.

_____________
матфак вгу и остальная классика =)

dimmkan's picture

все-таки в первой строке 1 элемент ожидается, а не ноль.

Согласен, но я как раз таки его сразу после начала цикла и инкрементирую, в общем, тут скорее на вкус и цвет))

for($i = 0; $i < $n; $i++){
        $tmpCnt++;
vedro-compota's picture

Согласен, но я как раз таки его сразу после начала цикла и инкрементирую, в общем, тут скорее на вкус и цвет))

да, без инкремента оно вообще бы не сработало, но лучше всегда то, что понятнее. В начале там будет 1 элемент, хотя это и не сильно важно.

_____________
матфак вгу и остальная классика =)

dimmkan's picture

<?php
/*
* Задайте случайным образом массив из N элементов. Выведите его на экран "ёлочкой".
* @param int $n  количество элементов массива
*/
function elka($n){
    $arr = [];
    $cntInLine = 0;
    $tmpCnt = 0;
    for($i = 0; $i < $n; $i++){
        $arr[$i] = rand(-100, 100);
    }
    foreach($arr as $value){
        $tmpCnt++;
        echo $value, " ";
        if($cntInLine < $tmpCnt){
            $cntInLine++;
            $tmpCnt = 0;
            echo "<br>";
        }
    }
}
elka(12);
?>