形参和实参的返回类型可以相同
#include<stdio.h>
int binary_search(int arr[], int k,int sz )
{
int left = 0;//被查找元素的左下标记为0
int right = sizeof(arr) / sizeof(arr[0]) -1;
while (left<=right)
{
int mid = (left + right) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int arr[] = { 1,2,3,4,5 };
int k = 3;
int sz = sizeof(arr) / sizeof(arr[0]);
int b= binary_search(arr, k,sz);//传送的是首元素的地址
if (b == -1)
{
printf("找不到\n");
}
else
{
printf("下标为:%d\n", b);
}
return 0;
}
这个代码有些问题,需要改进