Помогите пожалуйста исправить. В PHP плохо понимаю поэтому код и не работает. В одномерном массиве, состоящем из n вещественных элементов, вычислить: количество элементов массива, больших c; произведение элементов массива, расположенных после максимального по мс дулю элемента. Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные 0, считать положительными). Заранее спасибо. <?php $mas=$_GET ['mas']; $arr=explode(' ',$mas); $c=$_GET ['c']; $summa=0; foreach($arr as $number){ if($number<$с) echo 'Число '.$number.' больше '.$с.<br>'; $min[0] = $c[0]; $min[1] = 0; for($i = 0; $i < count($m); $i++){ } if(number($m[$i]) < number($min[0])){ $min[0] = $m[$i]; $min[1] = $i; } } $res = 1; if(number($min[1]) < number($max[1])){ $start_index = $min[1]; $end_index = $max[1]; } else { $start_index = $max[1]; $end_index = $min[1]; } for($i = $start_index+1; $i < $end_index; $i++){ $res *= $m[$i]; } echo '</br>Произведение элементов массива, расположенных после максимального по мс дулю элемента.: '."$res"; rsort($m); foreach ($m as $key => $val) { echo '</br>'."$key = $val\n"; } ?>
PHP: <?php class realCount { public $n = 10; //количество элементов; public $c = 5; //цифра от, от которой считаются большие элементы; public $typenum = 'real'; //тип чисел в массиве 'real' - дробные (вещественные), 'int' - целые; public $min = 1; //минимальное целое число в массиве (до запятой); public $max = 50; //максимально целое число в массиве (до запятой) public $minfract = 1; //минимальное число в дробной части (после запятой); public $maxfract = 99; //максимальное число в дробной части (после запятой); //--------- private $numarray = []; //массив с числами /* генератор массива */ private function genArray() { if ($this->typenum === 'real') { for($i=0; $i < $this->n; $i++) { $sign = (rand(1,2) == 1) ? '' : '-'; $this->numarray[] = $sign.rand($this->min,$this->max).'.'.rand($this->minfract,$this->maxfract); } } else if ($this->typenum === 'int') { for($i=0; $i < $this->n; $i++) { $sign = (rand(1,2) == 1) ? '' : '-'; $this->numarray[] = $sign.rand($this->min,$this->max); } } return $this->numarray; } /* подсчет количества элементов, которые больше чем C*/ private function countLarge() { $count = 0; foreach ($this->numarray as $num) { if($num > $this->c) { $count++; }; } return $count; } /* произведение элементов массива, расположенных после максимального по модулю элемента */ private function multi() { $res = []; foreach ($this->numarray as $key => $num) { if(abs($num) > $res['num']) { $res['num'] = abs($num); $res['key'] = $key; } } $array = array_slice($this->numarray,$res['key']+1); $multi = array_product($array); return [$res['num'],$multi]; } /* сортировка массива от отрицательного к положительному */ private function sortArr() { $array = $this->numarray; sort($array); return $array; } public function run() { $this->genArray(); $count = $this->countLarge(); $multi = $this->multi(); $array = $this->numarray; $sort = $this->sortArr(); return [$array,$count,$multi,$sort]; } } $a = new realCount; $arr = $a->run(); ?> <DOCTYPE html> <html> <head> <style> .wrapper { width: 400px; padding: 25px; margin: 0 auto; background-color: #fffaaa; } h3 { margin-top:0; } </style> </head> <body> <div class="wrapper"> <h3>Массив чисел:</h3> <?php foreach ($arr[0] as $value) { echo "<p>$value</p>"; } ?> <h3>Количество элементов больших чем <?=$a->c?>:</h3> <p><?=$arr[1]?></p> <h3>Максимальное число по модулю:</h3> <p><?=$arr[2][0]?></p> <h3>Произведение элементов массива, расположенных после максимального по модулю элемента:</h3> <p><?=$arr[2][1]?></p> <h3>Отсортированный массив:</h3> <?php foreach ($arr[3] as $values) { echo "<p>$values</p>"; } ?> </div> </body> </html>