利用二分法判断输入的数字是否在该数组中,该数组中的数值从小到大排列
#include <stdio.h>
#include <math.h>
#define M 10
int main()
{
static int a[M] = {-12,0,6,16,23,56,80,100,110,115};
int n,low,mid,high,found;
low=0;
high= M-1;
found =0;
printf("请输入一个数字:");
while(low<=high)
{
mid = (low+high)/2;
if(n==a[mid])
{
found=1;
break;
}
else if(n>a[mid])
{
low=mid+1;
}
else{
high=mid-1;
}
}
if(1==found)
{
printf("存在该数据%d",n);
}
else{
printf("不存在该数据%d",n);
}
return 0;
}