你能用c语言写出二分查找法找出数组里面某个数字的位置吗
时间: 2023-10-12 16:18:26 浏览: 44
可以,以下是一个示例代码:
```c
#include <stdio.h>
int binarySearch(int arr[], int size, int target) {
int left = 0, right = size - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] < target) {
left = mid + 1;
} else if (arr[mid] > target) {
right = mid - 1;
}
}
return -1; // 如果未找到目标数字,则返回-1
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13};
int size = sizeof(arr) / sizeof(arr[0]);
int target = 7;
int index = binarySearch(arr, size, target);
if (index != -1) {
printf("目标数字 %d 在数组中的位置为 %d\n", target, index);
} else {
printf("目标数字 %d 未在数组中找到\n", target);
}
return 0;
}
```
输出结果为:目标数字 7 在数组中的位置为 3