#include<stdio.h>
#include<Windows.h>
#pragma warning(disable:4996)
int BinSearch(int x, int a[], int n)
{
int start=0 ;
int end = n - 1;
while (start <= end) {
int mid = (start + end) / 2;
if (x > a[mid])
{
//右半
start = mid + 1;
}
else if (x < a[mid])
{
//左半
end = mid - 1;
}
else {
return mid;
}
}
return -1;//没有找到返回-1.
}
int main()
{
int x=0;
int a[] = { 1,2,3,4,5,6,7,8,9,10 };
int n = sizeof(a) / sizeof(a[0]);
printf("请输入要查找的数字:");
scanf("%d", &x);
int index=BinSearch(x,a,n);//传参的时候,数组下标是被忽略的。
printf("%d\n", index);
system("pause");
return 0;
}
//运行环境vs2019
附图: