一个二分法查找要用到递归调用的问题
#include<stdio.h>
#include<string.h>
main()
{
int k,m,a[10],i,j,t,e,f;
int search(int a[],int l,int h,int k);
clrscr();
printf("input 10 numbers :\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<=8;j++)
for(i=0;i<=10-j;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
printf("the sorted numbers :\n");
for(i=0;i<10;i++) printf(" %d",a[i]);
printf("\n");
scanf("%d",&k);
m=search( a,e,f,k);
printf("\n%d",m);
}
int search(int a[],int l,int h,int k)
{
int j;
l=0;
h=9;
while(l<=h)
{
j=(l+h)/2;
if(a[j]==k) return(a[j]);
if(a[j]>k) return search(a,l,h-1,k); /* h=j-1; */
else return search(a,l-1,h,k); /* l=j+1; */
}
return(-1);
}