C语言 设已有一个10个元素的整型数组a,且按值从小到大有序排列。int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; 输入一个整数x,然后在数组中查找x,如果找到,输出相应的下标,否则,输出“Not Found”。
时间: 2024-05-16 19:14:14 浏览: 14
可以使用二分查找算法来实现这个功能。二分查找算法是一种高效的查找算法,它的时间复杂度是 O(log n)。
C语言代码如下:
```c
#include <stdio.h>
int binary_search(int a[], int len, int x) {
int left = 0;
int right = len - 1;
while (left <= right) {
int mid = (left + right) / 2;
if (a[mid] == x) {
return mid;
} else if (a[mid] < x) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return -1;
}
int main() {
int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int x;
printf("请输入要查找的整数:");
scanf("%d", &x);
int index = binary_search(a, 10, x);
if (index != -1) {
printf("%d 在数组中的下标是 %d\n", x, index);
} else {
printf("Not Found\n");
}
return 0;
}
```
首先定义一个 `binary_search` 函数,接受三个参数:数组 `a`、数组长度 `len` 和要查找的整数 `x`。函数返回值为整数,表示 `x` 在数组中的下标,如果没找到则返回 -1。
在 `main` 函数中,先定义有序整型数组 `a` 和要查找的整数 `x`。然后通过 `scanf` 函数获取用户输入的整数。
接着调用 `binary_search` 函数进行查找,如果返回值不为 -1,则说明找到了,输出相应的下标。否则输出 "Not Found"。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)