#include <stdio.h>
int find(int i,int x,int* p) // i:要查的数;x:元素个数; p:数组地址对应的指针变量
{
int left = 0;
int right = x - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (i < *(p+mid))
right = mid - 1;
else if (i > *(p + mid))
left = mid + 1;
else
return mid;
}
while (left > right)
return 0;
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9 };
int a = 3,k = 0;
int n = sizeof(arr) / sizeof(arr[0]);//数组元素个数
k = find(a,n,arr);
if (k)
{
printf("所查找的数字下标是:%d", k);
}
else printf("未找到\n");
return 0;
}