#include<stdio.h>
int main()
{
int m,n,i;
int a[100];//定义数组的最大长度为100
printf("请输入数组的长度:\n");
scanf("%d",&m);
printf("请依次输入数组的内容:\n");
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
printf("请输入要查找的数:\n");
scanf("%d",&n);
void BinarySearch(int a[],int m,int n);
BinarySearch(a,m,n);
return 0;
}
void BinarySearch(int a[],int m,int n)
{
int i,j,mid=0,left=0;
int right=m-1;
while(left<right+1&&left>=0)
{
int mid=(left+right)/2;
if(n==a[mid])
{
i=j=mid;
break;
}
if(n>a[mid])
left=mid+1;
else
right=mid-1;
}
if((i==j)&&(i>=0))
{
printf("所查找的数据在数组中的下标为:%d\n",i);
}
else
{
i=right;
j=left;
printf("所找的数据不在数组中,其前后下标为:%d,%d\n",i,j);
}
}