gpt4 book ai didi

c - 递归二分查找/C

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:54 24 4
gpt4 key购买 nike

我整天都在尝试使用递归(对我来说是一个新概念)在 C 中编写二进制搜索。我研究了很多并想出了这个:

int binary_search(int *parr, int value, int left, int right){
int middle = (left+right)/2;
if(*(parr+middle)==value){
return 1;
}
if(right<left){
return 0;
}
if(*(parr+middle)>value){
return binary_search(*parr, value, left, middle-1);
}
else{
return binary_search(*parr, value, middle+1, right);
}
}

这是我的主要功能:

int main()
{
int arr[maxbr],n, i, g;
do{
printf("\n n=");
scanf("%d", &n);
} while(n>maxbr);

for(i=0; i<n; i++){
printf("\n a[%d]", i);
scanf("%d", &arr[i]);
}

g = binary_search(arr, 5, 0, n-1);
printf(" %d", g);
}

由于某种原因,在我输入 n 和数组后,这会崩溃。在此先感谢您的帮助!

最佳答案

你可能想要:

 return binary_search(parr, value, left, middle-1);

没有 parr 前面的 *。 *parr是第一个int,parr是数组。

(也修复另一个)

关于c - 递归二分查找/C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43161006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com