老师,为什么我这个程序返回的结果是7?
/*要使用二分查找,必须数组已经按照从大到小的顺序排好*/
#include <stdio.h>
int find(int a[],int t)
{
int left=0,mid,right=14;
while(1)
{
mid=(left+right)/2;
if (t=a[mid])
return mid;
else
{
if (t>a[mid])
left=mid+1;
else right=mid-1; /*这里不能在else外面加大括号*/
}
}
return -1;
}
main()
{
int a[15]={3,7,12,19,21,24,26,33,39,41,45,50,52,64,68};
printf("%d\n",find(a,52));
}