ArrayBsearch не понятно как ищет.

 

Нид хелп, плиз.

Вызываю некую функцию. Все значения положительные int.

Work_width_mas (order_ticket, ticket_1, ticket_2, ticket_3);

Сама функция

int Work_width_mas (int m_order, int tic_1, int tic_2, int tic_3){

int mas_orders[25][4];
int check_free;


check_free = ArrayBsearch(mas_orders, 0);                         // поиск пустой строки
    if(mas_orders[check_free][0] <= 0) {                           //проверяем действительно ли там 0
Print("Место есть, строка номер - ", check_free);
   mas_orders[check_free][0] = m_order;
   mas_orders[check_free][1] = tic_1;
   mas_orders[check_free][2] = tic_2;
   mas_orders[check_free][3] = tic_3;
   }
   else {Alert ("Нет свободного места в массиве");}

Так вот при первом обращении к этой фунции, она подсовывает строку 0, мы ее забиваем, следующий вызов функции подсовывает строку 24, третий вызов функции сообщает нам что свободного места в массиве нет.

Пробегаемся по этому массиву

for(int m=0; m<=25; m++)                
   if(mas_orders[m][0] > 0)                           // Смотрим если ли значение в первой в ячейке, строки, если есть, значит и остальна строка заполнена
Print("Строка - ", m, "в массиве > 0");
else Print ("Строка пустая");
}

Строка 0 и строка 24 заполнены, остальные пустые.

Как так? Как это побороть?

С уважением,

Алексей.

 

Видимо никто не сталкивался...

Пришлось данную проблему решить тупым перебором в цикле, по крайней мере так работать стало адекватней.

 
jarinov:

Видимо никто не сталкивался...

Пришлось данную проблему решить тупым перебором в цикле, по крайней мере так работать стало адекватней.

Можно попробовать посортитровать массив mas_orders.
 
jarinov:

Нид хелп, плиз.

Вызываю некую функцию. Все значения положительные int.



а отсортированные ?

док читали?

Причина обращения: