Налицо некорректное сравнение double чисел на равенство в функции ArrayBsearch или неправильное заполнение массива Upper_UnikalValues.
Массив регулярно массштабируется, или увеличивается его размер - в конец добавляется новый элемент, или удаляется элемент и массив обрезается.
int start() { double buf[]={ 1.4472, 1.4474, 1.4476, 1.4442, 1.4435 }; double val=1.4474; //---- печатаем значения for(int i=0;i<ArraySize(buf);i++) Print(i," - ",buf[i]); //---- ищем int pos=ArrayBsearch(buf,val,ArraySize(buf),0,MODE_DESCEND); Print("Нашел индекс: ",pos," и его значение в массиве: ",buf[pos]); //---- return(0); }
Нашел индекс: 0 и его значение в массиве: 1.4472 4 - 1.4435 3 - 1.4442 2 - 1.4476 1 - 1.4474 0 - 1.4472
Вообще-то ArrayBsearch ищет данные в отсортированном массиве. 1.4472, 1.4474, 1.4476 возрастающая последовательность, при чём тут MODE_DESCEND? оказывается вот при чём 1.4442, 1.4435
Пожалуйста, сначала отсортируйте Вашу последовательность соответсвующим образом, то есть по убыванию значений
ArrayBsearch
Это вообще лажа. Такое намутили.
Ищет в отсортированому по возрастанию масиву! Классс!!!
Неужели нельзя сделать проще?
буфер,что ищем
Нашли точное число функция возвратила индекс.
Не нашли возвратила -1
ArrayBsearch
Это вообще лажа. Такое намутили.
Ищет в отсортированому по возрастанию масиву! Классс!!!
Неужели нельзя сделать проще?
буфер,что ищем
Нашли точное число функция возвратила индекс.
Не нашли возвратила -1
В неотсортированном массиве поиск реализуется в 8 строк:
for(int i=0,n=ArraySize(arr);i<n;i++) { if(arr[i]==X) { FOUND_INDEX=i; break; } }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования