2
我一直在嘗試使用遞歸(對我來說是新概念)整天在C.寫一個二進制搜索我研究了很多與此想出了:遞歸二進制搜索/ 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和數組後,崩潰。先謝謝您的幫助!
什麼是'maxbr'?您是否嘗試過使用調試器來捕捉崩潰並查看它發生的位置? –
請閱讀警告並採取行動。如果他們說你做錯了什麼,那你很可能會這樣做。 –
我使用#define maxbr 100(例如)來定義數組可以具有的最大元素數量。 –