Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Минимално и максимално число в PHP


rado99

Препоръчан отговор

Здравейте,

за домашна имам да изкарам минималното и максималното число от даден масив, като НЕ МОГА да изпозвам функциите min и max а само с функцията foreach.

Линк към коментара
Сподели в други сайтове

<?php

$numbers = array(376,23,56,34,56,234);
$min = PHP_INT_MAX;
$max = -PHP_INT_MAX;
foreach ($numbers as $number)
{
	if ($number > $max)
		$max = $number;
	if ($number < $min)
		$min = $number;
}

var_dump($min, $max);

?>
Линк към коментара
Сподели в други сайтове

<?php

$numbers = array(376,23,56,34,56,234);
$min = PHP_INT_MAX;
$max = -PHP_INT_MAX;
foreach ($numbers as $number)
{
	if ($number > $max)
		$max = $number;
	if ($number < $min)
		$min = $number;
}

var_dump($min, $max);

?>

Кофти е да се ползват тия константи за инициализация... По-добре е да се инициализират с първия елемнт от масива.
Линк към коментара
Сподели в други сайтове

Кофти е да се ползват тия константи за инициализация... По-добре е да се инициализират с първия елемнт от масива.

Какво имаш в предвид?

Линк към коментара
Сподели в други сайтове

Какво имаш в предвид?

Ами, че е по-добре $min и $max да се инициализират с първия елемент на масива, вместо с някакви гранични константи. Особено пък в език, който не е много придирчив към типовете. И даденият код ще работи, но с това което предлагам, алгоритъмът ще може да работи и за сравняване на данни, за които не знаеш границите или работиш с потребителска функция за сравнение. Примерно ако горе решиш да минеш на числа с плаваща запетая, трябва да смениш и констаните, в моя вариант сменяш само данните.
Линк към коментара
Сподели в други сайтове

Ами, че е по-добре $min и $max да се инициализират с първия елемент на масива, вместо с някакви гранични константи. Особено пък в език, който не е много придирчив към типовете. И даденият код ще работи, но с това което предлагам, алгоритъмът ще може да работи и за сравняване на данни, за които не знаеш границите или работиш с потребителска функция за сравнение. Примерно ако горе решиш да минеш на числа с плаваща запетая, трябва да смениш и констаните, в моя вариант сменяш само данните.

<?php

$numbers = array(376,23,56,34,56,234);
$min =$numbers[0];
$max =$min*(-1);
foreach ($numbers as $number)
{
	if ($number > $max)
		$max = $number;
	if ($number < $min)
		$min = $number;
}

var_dump($min, $max);

?>

Така ли?

Линк към коментара
Сподели в други сайтове

...

Къде съм казал да умножаваш по -1?
Линк към коментара
Сподели в други сайтове

-$min не е иденично с $min*(-1)

Аз казах че в началото на цикъла двете променливи $min и $max трябва да са равни на първия елемент. Нe $max да е равно на $min с обратен знак. Така както си го направил е направо грешно.
Линк към коментара
Сподели в други сайтове

Много благодаря за всички отзовали се... Оправих се с условието благодарение на уточненията от @flare и отчасти кода на gothicrock, за което много ви благодаря! :)

Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване