int Pinary_Search(int num, int arr[],int arr_size)
{
int mid;
int left = 0;
int right = (arr_size / 4) - 1;
while (1)
{
mid = (left + right)/2;
if (num > arr[mid])
{
left = mid + 1;
}
else if (num < arr[mid])
{
right = mid - 1;
}
else return mid;
}
}
void main()
{
int arr[] = {1,2,3,4,5,6,7,8,9};
printf("数组ID:%d", Pinary_Search(6, arr, sizeof(arr)));
}
自定义二分法查找函数,出现了数组传值的相关问题
将实参传给形参,形参int arr[]接受到的只是数组的首地址,如果要成功将数组传给自定义函数,还需要提供数组长度
具体可参考C语言数组当参数传递



