SA-MP Forums Archive
Вопрос на засыпку. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Вопрос на засыпку. (/showthread.php?tid=571095)



Вопрос на засыпку. - James_Braga - 16.04.2015

Есть массив M1 с максимальным количеством ячеек 611, есть второй M2 массив с количеством ячеек 48.

внимание вопрос:
Как перекинуть значения по условии(если значение из M1 подходит для M2) из ячеек M1 в M2 так чтобы M2 не вышел за пределы 48 ячеек и в ней не осталось пустых ячеек между значениями?


Re: Вопрос на засыпку. - OKStyle - 16.04.2015

sizeof


Re: Вопрос на засыпку. - James_Braga - 16.04.2015

Quote:
Originally Posted by OKStyle
Посмотреть сообщение
sizeof
sizeof? нет видимо ты не правильно понял меня, прочитай вопрос ещё раз

PHP код:
    new M2[48];
    for(new 
400sizeof(М1); i++)
    {
        if(
М1[i][Z] != Z)continue;
        else if(
sizeof(M2))break;
        else 
М2[i-400] = i;
    } 
что то типо этого...


Re: Вопрос на засыпку. - James_Braga - 16.04.2015

Вот рабочий код, в общем логика такова:

PHP код:
F1(Z)
{
    new 
M2[48];
    for(new 
400sizeof(M1); i++)
    {
        if(
M1[i][Z] != Z) continue;
        else
        {
            for(new 
ssizeof(M2); s++)
            {
                if(
M2[s])continue;
                else 
M2[s] = i;
            }
        }
    }

но тут может дойти до 10128 итераций это очень плохо.. хотя можно один раз заполнить как нужно потом использовать M2 как статичный массив.


Re: Вопрос на засыпку. - OKStyle - 16.04.2015

Я всё правильно понял. sizeof как раз и нужен, чтобы за пределы массива не выходили данные.


Re: Вопрос на засыпку. - XemyL - 16.04.2015

Не очень понял задачу. Если не то - поправь.

PHP код:
F1(Z)
{
    new 
M2[48]; 
    for(new 
400Asizeof(M2) && sizeof(M1); i++)
    {
        if(
M1[i][Z] != Z) continue;
        
M2[A] = i;
        
A++;
    }




Re: Вопрос на засыпку. - Jon_De - 16.04.2015

тебе все 611 перекинуть надо?


Re: Вопрос на засыпку. - ZiGGi - 16.04.2015

Очень не рационально для 211 едениц транспорта создавать массив на 611 ячеек.