Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2015, 02:36   #1
msemenikhin
 
Регистрация: 29.01.2012
Сообщений: 7
Восклицание Поиск элементов в матрице

Доброй ночи. Имеется функция
PHP код:
function is_existELEM($X)
    {
        
$K = array();
        for (
$q=0$q count($X); $q++) { 
            for (
$z=0$z count($X[0]); $z++) { 
                
$K[$q][$z] = -1;
            }
        }

        
$s false;
        
$t false;

        for (
$i=0$i count($X); $i++) { 
            for (
$j=0$j count($X[0]); $j++) { 
                if(
$X[$i][$j]==-1) continue;
                else
                {
                    
$k=$i;
                    
$l=$j;
                
//    do{
                        
for ($k=0$k count($X[0]); $k++) { 
                            if(
$X[$i][$k] != -1$s true;
                            else 
$s false;
                        }
                
//        $f++;
                //    } while($f<count($X[0]));

                //    do{
                        
for ($l=0$l count($X); $l++) { 
                            if(
$X[$l][$j] != -1$t true;
                            else 
$t false;
                        }
                
//        $d++;
                //    } while($d<count($X));


                    
if($s && $t$K[$i][$j] = $X[$i][$j];
                    else 
$X[$i][$j]=-1;
                    
printmatrix($X);
                    echo 
"<br><br>";
                }
            }
        }
        return 
$K;
    } 
Но работает она не совсем правильно.
Подскажите,пожалуйста. У меня есть двумерный массив:
PHP код:
$X = array(
            array(
90,-1,20),
            array(-
1,300,100),
            array(
50,-1,60)
        ); 
Необходимо пройти по матрице пропуская -1 и для каждого элемента (не равного -1) проверить, есть ли ещё элементы в строке и столбце не равные -1. Если есть, то записать элемент (для которого искали) в дв. массив $K. Иначе приравнять этот элемент (для которого искали) к -1, то есть $X[$i][$j]=-1 и перейти к следующему элементу.
Например если матрица $X такая:
PHP код:
$X = array(
            array(
90,-1,20),
            array(-
1,300,100),
            array(
50,-1,60)
        ); 
то первый элемент на пути (не равный -1) будет 90. Для 90 надо проверить, есть ли на этой строке хоть один элемент не равный -1 И так же на столбце, где стоит 90. В нашем случае, на строке стоит 20, на столбце 50, следовательно, запоминаем 90 (с теми же индексами) в массив $K, то есть $K[$i][$j]=$X[$i][$j] и переходим к следующему элементу. Следующий элемент 20 (для него на строке стоит 90, на столбце 100 и 60), следовательно запоминаем. Далее 300, на строке 100, а на столбце нету элемента неравного -1, следовательно присваиваем 300 значение -1, то есть $X[$i][$j]=-1; Далее 100, на столбце 20 и 60, а на строке НЕТ элементов,так как 300 уже стал -1 на предыдущем шаге цикла. И тд. На выходе должен получиться массив $K вида
PHP код:
$X = array(
            array(
90,-1,20),
            array(-
1,-1,-1),
            array(
50,-1,60)
        ); 
Проблема в том, что не могу понять, как двинуть цикл назад, если, например, мы на элементе 20 в $X как понять, что для него на строке есть 90. Или на элементе 60, как понять, что для 60 на строке есть 50, а на столбце 20.
Буду рад любой помощи! Спасибо!
msemenikhin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить номера строк в матрице, в которых элементов, принадлежащих отрезку[A,B], больше, чем элементов, принадлежащих отрезкам[ Wunschpunsch Помощь студентам 5 20.03.2014 19:05
Сортировка элементов в матрице McFrey Помощь студентам 8 05.12.2011 17:29
поиск повторяющихся элементов в матрице I_newbie Помощь студентам 2 15.03.2010 22:44
Сортировка элементов в матрице Lazy_Bitch Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2009 16:22
поиск элементов в матрице, не равных нулю ciaonataha Общие вопросы C/C++ 37 29.03.2009 21:29