如何解决变量的值正在改变,而没有在 C 中实际改变它
在下面的二进制搜索代码中,key 的值在调用函数 binarySearch() 后会自动改变。尽管事实键在函数 binarySearch() 中作为引用传递。请让我知道后台发生了什么正在改变 Key 的值。
#include <stdio.h>
int binarySearch(int arr[],int key,int low,int high,int *middle){
if(arr[*middle] == key)
return *middle+1;
else if(arr[*middle] > key && arr[*middle] > 0){
high = *middle--;
*middle = (low + high)/2;
return binarySearch(arr,key,low,high,middle);
}
else if(arr[*middle] < key && key < arr[high]){
low = *middle++;
*middle = (low + high)/2;
return binarySearch(arr,middle);
}
return -1;
}
main(){
int arr[] = {1,2,3,4,5,6,7};
int size = sizeof(arr)/sizeof(arr[0]);
int key;
int low = 0;
int high = size - 1;
int middle = (low + middle)/2;
printf("Enter the key to be Searched: ");
scanf("%d",&key);
printf("%d",key);
int result = binarySearch(arr,&middle);
printf("%d",key);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。