任意输入10个数,先将其按由大到小的顺序排列;再输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则打印出“无此数”。帮我用C语言编写出来
时间: 2024-03-13 11:45:53 浏览: 22
好的,以下是用C语言编写的程序:
```c
#include <stdio.h>
int main()
{
int arr[10];
int i, j, temp, num, low, high, mid;
// 输入10个数并排序
printf("请输入10个数:\n");
for(i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
for(i = 0; i < 9; i++)
{
for(j = i+1; j < 10; j++)
{
if(arr[i] < arr[j])
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 输入要查找的数并用折半查找法查找
printf("请输入要查找的数:\n");
scanf("%d", &num);
low = 0;
high = 9;
while(low <= high)
{
mid = (low + high) / 2;
if(num == arr[mid])
{
printf("该数是数组中第%d个元素的值。\n", mid+1);
return 0;
}
else if(num < arr[mid])
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
// 如果该数不在数组中,则打印出“无此数”
printf("无此数。\n");
return 0;
}
```
输入10个数和要查找的数后,程序会先将10个数按由大到小的顺序排列,然后用折半查找法查找要查找的数在数组中的位置。如果该数不在数组中,则打印出“无此数”。
相关推荐
![cpp](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)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)