@eratnikstudio

Как определить максимальное из четырех чисел $a, $b, $c, $d?

Как определить максимальное из четырех чисел $a, $b, $c, $d ?

Вот что написал я:

<?php
$a=1;
$b=2;
$c=3;
$d=4;

if ($a > $b)
{
if ($a > $c)
echo "максимальное число a";
else
echo "максимальное число c";
}
else
{
if ($b > $c)
echo "максимальное число b";
else
echo "максимальное число c";
}
else
{
if ($c > $d)
echo "максимальное число c";
else
echo "максимальное число d";
}
?>
  • Вопрос задан
  • 2510 просмотров
Пригласить эксперта
Ответы на вопрос 6
LamerX
@LamerX
Начинающий Front - End программер
Вроде есть функция max() для определения самого большого числа
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$max = max($a, $b, $c, $d);
Да, если надо получить именно имя переменной, то добавляем
echo "Max: ".implode(', ', array_map(function($i) { return chr(ord('a')+$i); },
                                     array_keys(array($a, $b, $c, $d), $max)));
Ответ написан
Комментировать
GavriKos
@GavriKos
Если уж так хочется ручками и без говнокода из полотна if-ов - записать их в массив, пройтись по массиву и найти в нем максимальное, сравнивая на каждом шаге с эталоном (в который и писать).
Что то вроде:
$max = $arr[0];
for ($i=0; $i<$size;$i++)
{
if ($arr[$i] >$max )
   $max = $arr[$i];
}


Думаю на PHP можно и красивее написать, описал просто общую логику а-ля псевдокод.
Ответ написан
Комментировать
BoShurik
@BoShurik
Symfony developer
Я так понял автора не интересует значение максимального числа

$numbers = [
    'a' => $a,
    'b' => $b,
    'c' => $c,
    'd' => $d,
];

arsort($numbers);

echo sprintf('Максимальное число %s', key($numbers));
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
if ($a>=$b && $a>=$c && $a>=$d) echo $a;
else if ($b>=$a && $b>=$c && $b>=$d) echo $b;
else if ($c>=$a && $c>=$b && $c>=$d) echo $c;
else echo $d;
echo ' - самое максимальное число из всех.';

Экзотика:
$arr=[1,4,7,4,0,3];

function maxval($a) {
  if ($a[1]) {
      if ($a[0]>$a[1]) $a[1]=$a[0];
      array_shift($a);
      return maxval($a); 
  }

  return $a[0];
}

echo maxval($arr);
Ответ написан
Комментировать
@PashaNedved
Клуб любителей велосипедов объявляется открытым!
function foo()
{
    $numargs = func_num_args();
	$arg_list = func_get_args();
	$max = $arg_list[0];
	for ($i = 0; $i < $numargs; $i++){
		if ($arg_list[$i] > $max ) $max = $arg_list[$i];
	}
	
	return $max;
}

$a = 1;
$b = 5;
$c = 3;
$d = 1;

echo foo($a, $b, $c, $d);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы