按上述要求写出c语言的代码
时间: 2024-11-22 10:48:16 浏览: 15
当然,下面是一个简单的C语言函数,实现了二分搜索算法来查找数组中的元素。这里假定输入数组已经按照升序排列:
```c
#include <stdio.h>
// C语言的二分搜索函数
int binary_search(int arr[], int n, int target) {
int low = 0;
int high = n - 1;
while (low <= high) {
int mid = low + (high - low) / 2; // 计算中间索引
// 如果找到目标元素,返回其索引
if (arr[mid] == target)
return mid;
// 如果目标小于中间元素,搜索左半部分
else if (arr[mid] > target)
high = mid - 1;
// 否则,目标大于中间元素,搜索右半部分
else
low = mid + 1;
}
// 没找到目标元素,返回-1
return -1;
}
int main() {
int arr[] = {5, 8, 10, 12, 20, 36, 45, 50};
int n = sizeof(arr) / sizeof(arr[0]);
int target = 8;
int result = binary_search(arr, n, target);
if (result != -1)
printf("Element found at index %d\n", result);
else
printf("Element not found in the array.\n");
return 0;
}
```
在`main`函数中,我们调用了`binary_search`函数,并传入数组、数组长度以及要查找的目标元素。如果找到,程序会打印出元素的索引,否则提示元素未找到。
阅读全文