老师,我这个程序为什么大于33输出的总是8呢,小于33输出的总是6呢?
#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));
}