有一个数组a[10],里面存放了10个整数,顺序递增a[10]={2,3,5,7,8,10,12,15,19,21}。任意输入一个用数字n,用折半查找法,找到n位于数组中的位置。如果n 不属于数组a,显示错误提示。
时间: 2023-05-02 15:00:27 浏览: 67
题目描述:有一个数组a[10],里面存放了10个整数,顺序递增,a[10]={2,3,5,7,8,10,12,15,19,21}。任意输入一个用数字n,用折半查找法,找到n在数组中的位置。如果n不属于数组a,显示错误提示。
折半查找法也叫二分查找法,是一种效率较高的查找方法。它的基本思想是:首先确定该查找区间的中间点位置,如果中间点数据不是要查找的数据,则根据中间点数据大小关系确定新的查找区间,进而缩小查找范围,直到查找成功或查找失败为止。
答案:折半查找法代码如下:
```
#include <stdio.h>
int main()
{
int a[10] = {2,3,5,7,8,10,12,15,19,21};
int n, left = 0, right = 9, mid;
printf("请输入一个数字n:");
scanf("%d", &n);
while (left <= right)
{
mid = (left + right) / 2;
if (n == a[mid])
{
printf("数字%d在数组a中的位置是%d\n", n, mid+1);
return 0;
}
else if (n < a[mid])
{
right = mid - 1;
}
else
{
left = mid + 1;
}
}
printf("输入的数字%d不属于数组a\n", n);
return 0;
}
```
运行程序后,输入一个数字n,程序会通过折半查找法判断该数字在数组a中的位置,并输出结果。如果输入的数字n不属于数组a,则会显示错误提示。
相关推荐
![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)