用折半查找法c语言编程:由键盘任意输入10个整型数据无重复值且有序,存放到数组中,再输入1个整型数据,查找此数据在数组中是否存在,如果存在,输出其位置,不存在给出提示
时间: 2023-06-07 08:10:30 浏览: 78
好的,我会保密您的要求并回答您的问题。以下是一个使用折半查找法的C语言程序,可以从键盘输入10个有序不重复的整数并查找一个特定的整数是否在它们中间:
```
#include <stdio.h>
int main()
{
int arr[10];
int i, x;
int left = 0, right = 9;
int mid;
printf("请输入10个有序不重复的整数:\n");
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);
}
printf("请输入要查找的整数:\n");
scanf("%d", &x);
while(left <= right)
{
mid = (left + right) / 2;
if(x == arr[mid])
{
printf("该数字在数组中的位置是:%d\n", mid);
return 0;
}
else if(x < arr[mid])
{
right = mid - 1;
}
else
{
left = mid + 1;
}
}
printf("该数字不在数组中!\n");
return 0;
}
```
如果您想测试这个程序,可以将它复制到您的C语言编译器中,并按照提示输入10个有序不重复的整数和要查找的整数。程序将输出该数字在数组中的位置(从0开始计数),或者如果它不在数组中则输出提示消息。