新知识点:传数组到自定义函数中时,只传送了第一个数的地址。
#include <stdio.h>
int binary_search(int arr[], int y,int z)
{
int l = arr[0];
int r = arr[z - 1];
int mid= (l + r) / 2;
for (l, r; l <= r; mid = (l + r) / 2)
{
if (mid < y)
l = mid + 1;
else if (mid > y)
r = mid -1;
else
return mid-1;
}
return 0;
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int k = 7;
int sz = sizeof(arr) / sizeof(arr[0]);
int ret = binary_search(arr, k,sz);
if (ret == 0)
printf("查无此数");
else
printf("%d\n", ret);
return 0;
}