老师,为什么我这个程序返回的结果是7?
ico 铁杆会员 2017-09-05 22:01:37
2249 2 0

/*要使用二分查找,必须数组已经按照从大到小的顺序排好*/
#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));

}


问题来自: 二分查找

共 2 个回答

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题