老师,我这个程序为什么大于33输出的总是8呢,小于33输出的总是6呢?
潮起潮落 人气红星 2016-08-08 11:27:14
2222 3 0

#include <stdio.h>

int find(int x[],int t)

{

int left=0, mid, right=14;/* 数字为角标 */

while(left<=right)

{

mid = (left + right) / 2;/*对于奇数和偶数都适用*/

if(t==x[mid])

{

return mid;

}

else

{

if(t>x[mid])

{

return left = mid+1;

}

else

{

return right = mid-1;

}

}

}

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, 41));

}


问题来自: 二分查找

共 3 个回答

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

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题