#include<string.h> #include<stdio.h> int k; int binarysearch(int a[],int x,int low,int high)//a表示需要二分的有序数组(升序),x表示需要查找的数字,low,high表示高低位 { if(low>high) { return -1;//没有找到 } int mid=(low+high)/2; if(x==a[mid])//找到x { k=mid; return x; } else if(x>a[mid]) //x在后半部分 { binarysearch(a,x,mid+1,high);//在后半部分继续二分查找 } else//x在前半部分 { binarysearch(a,x,low,mid-1); } } int main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; printf("请输入需要查找的正数字: "); int x; scanf("%d",&x); int r=binarysearch(a,x,0,9); if(r==-1) { printf("没有查到 "); } else { printf("查到了,在数列的第%d个位置上 ",k+1); } return 0; }