我正在尝试在 C 中创建一个递归二分搜索函数。我想我有它,但是当我尝试编译时,我在两个递归调用中都收到错误“expected primary-expression before ']' token”。有谁知道为什么会这样?
我的功能:
int binSearch(int val, int a[], int size)
{
int mid;
mid=(size)/2;
if(val==a[mid]) return a[mid];
else if(val<a[mid]) {
return binSearch(val, a[], (size-mid));
}
else if(val>a[mid]) {
return binSearch(val, a[], size);
}
else return(-1);
}
其中a[]是排序后的数组,size是数组的大小,val是要查找的值。
最佳答案
你只需要传入a
,而不是a[]
。像这样:
return binSearch(val, a, size);
关于c - C中的递归二进制搜索程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10274277/