6、考查点:折半查找算法、函数调用、数组作参数,程序D1026.c的功能是函数binary为折半查找key 值。数组中元素值已递增排序,若找到key则返回对应的下标,否则返回-1。主函数对该函数进行验证。 #include
int binary(int a[ ], int n, int key);
int main(void)
{
int data[10] = {2, 5, 7, 13, 16, 18, 23, 26, 28, 35};
int pos=0, key;
printf("Input an integer to find:");
scanf("%d", &key);
/*********Found************/
pos = ____________________ ;
if (pos == -1)
{
printf("Can't find %d.\n", key);
}
else
{
printf("%d's position is %d", key, pos);
}
return 0;
}
int binary(int a[ ], int n, int key)
{
int low, high, mid;
low = 0;
high = n - 1;
/*********Found************/
while ( ___________ )
{
mid = (low + high) / 2;
if (key < a[mid])
{
high = mid - 1;
}
else if (key > a[mid])
{
low = mid + 1;