Задача 2. Вывести на экран сумму N случайных чисел.

Задача из этого списка.

<?php
/* Вывести на экран сумму N случайных чисел. */
function outputSumRandomNumbers($numbers) {
	for(; $numbers > 0; $numbers--) {
		$num = rand(-21, 35);
		$arrayNumbers[] = $num; // при каждом витке цикла случайное число будет записано в массив
	}
	echo array_sum($arrayNumbers);
}
outputSumRandomNumbers(10);
?>

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

решение рабочее.
НО: Переделайте его так, чтобы массив не использовался (новое решение добавьте в ответный комментарий).

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

Sver4ok's picture

<?php
/* Вывести на экран сумму N случайных чисел. */
function outputSumRandomNumbers($numbers) {
	$sumNumbers = 0;
	for(; $numbers > 0; $numbers--) {
		$num = rand(-21, 35);
		$sumNumbers += $num; // при каждом витке цикла случайное число будет прибавлено к сумме чисел
	}
	echo $sumNumbers;
}
outputSumRandomNumbers(10);
?>
vedro-compota's picture

всё верно.

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

melisa's picture

при значении аргумента = 0 - ошибка.

outputSumRandomNumbers(0);
Sver4ok's picture

при значении аргумента = 0 - ошибка.

Нет ошибки, функция работает, т.к. пользователь должен вводить по условию:

Вывести на экран сумму N случайных чисел"

N - это натуральные числа, 0 не является натуральным числом, его невозможно подсчитать.
Если пользователь ввёл ноль чисел, то и считать нечего.
С другой стороны можно ввести условие-проверку какое число вводят.

<?php
/* Вывести на экран сумму N случайных чисел. */
function outputSumRandomNumbers($numbers) {
    if ($numbers <= 0) {
		echo 'Ошибка. Введите N-натуральное число количества чисел, которые нужно сложить!';
	}
    for($numbers; $numbers > 0; $numbers--) {
        $num = rand(-21, 35);
        $arrayNumbers[] = $num; // при каждом витке цикла случайное число будет записано в массив
    }
    echo array_sum($arrayNumbers);
}
outputSumRandomNumbers(0);
?>
vedro-compota's picture

ещё раз обращу внимание на то, что использовать массив тут неверно -- это приведёт для больших N к риску выхода за выделенный интерпретатору PHP объём оперативной памяти памяти (ведь все значения хранятся в памяти отдельно при использовании массива, и его размер растёт с каждым витком цикла).

На будущее: не используйте массивы, если можно легко без них обойтись.

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