В программе поиск элемента оформить как функцию потока. Сначала вводятся необходимые значения, затем осуществляется поиск и только после этого выводится результат!
Код: Выделить всё
/////////////////////////////////////////////////////////////////////////////////
//
// Фунуция бинарного поиска элемента
//
// FUNKCTION: int searchBinary(int*, int, int, int)
//
// PARAMETERS: [in] p_Array - указатель на массив
// [in] head - левая граница подмассива
// [in] tail - правая граница подмассива
// [in] g_KeySearch - эталон поиска
//
// RETURN VALUE: позиция элемента в массиве - в случае успеха
// -1 - в случае неудачи
//
// COMMENTS: элементы массива нумеруются с нуля
//
int searchBinary(int* p_Array, int g_KeySearch, int head, int tail)
{
int currPosition = ELEMENT;
if ((tail == head) && (p_Array[tail] != g_KeySearch ))
{
return ELEMENT;
}
else
{
currPosition = (head+tail)/2;
if (g_KeySearch == p_Array[currPosition])
{
return currPosition;
}
else
{
if (g_KeySearch > p_Array[currPosition])
{
currPosition = searchBinary(p_Array, g_KeySearch, head, currPosition);
}
else
{
currPosition = searchBinary(p_Array, g_KeySearch, currPosition+1, tail);
}
}
}
}