这个程序不懂哪里出错了
#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])
{
left=mid+1;
}
else
{
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,52));
}
}
可能是你大括号写太多了。。
return -1 应该写在while循环外面,main函数应该写在fun函数外面,你仔细看看自己写的是个啥。
这是我改过的,不会改就看看吧。
#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])
{
left=mid+1;
}
else
{
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,52));
}