#include<stdio.h>
//num为输入要查找的元素值
int zheban(int s[],int low,int high,int num){
int mid=(low+high)/2;//向下取整
if(low>high)//low大于high跳出程序
return -1;
//如果if里面的条件为真,执行return mid,如果else if里面条件为真执行 return zheban(s,mid+1,high,num)
//如果上述条件都不为真,执行 return zheban(s,low,mid-1,num)
else{
if(s[mid]==num)
return mid;
else if(s[mid]<num)
return zheban(s,mid+1,high,num);//如果mid指向的值小于要查询的值,low变为mid+1;
else
return zheban(s,low,mid-1,num);//如果mid指向的值大于要查询的值,high变为mid-1;
}
}
int main(){
int a[100];
int n,num,result;
printf("输入要创建数组元素的个数\n");
scanf("%d",&n);//输入要创建数组的个数
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("输入要查询的元素:\n");
scanf("%d",&num);
result=zheban(a,0,n-1,num);
if(-1!=result){
printf("查找成功,%d在第%d个位置上",num,result+1);
}
else
printf("查找失败");
}