Вопрос на засыпку. - 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 i = 400; i < sizeof(М1); i++)
{
if(М1[i][Z] != Z)continue;
else if(i > sizeof(M2))break;
else М2[i-400] = i;
}
что то типо этого...
Re: Вопрос на засыпку. -
James_Braga - 16.04.2015
Вот рабочий код, в общем логика такова:
PHP код:
F1(Z)
{
new M2[48];
for(new i = 400; i < sizeof(M1); i++)
{
if(M1[i][Z] != Z) continue;
else
{
for(new s; s < sizeof(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 i = 400, A; A < sizeof(M2) && i < 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 ячеек.