【一维数值数组】C语言程序编程已知有序数组 int arry[]={12, 23, 34, 56, 78,98,256,789}从键盘输入一个
【一维数值数组】已知有序数组intarry[]={12,23,34,56,78,98,256,789},从键盘输入一个整数,请用二分查找法在数组中找出该整数,并将其下标输...
【一维数值数组】已知有序数组 int arry[]={12, 23, 34, 56, 78,98,256,789},从
键盘输入一个整数,请用二分查找法在数组中找出该整数,并将其下标输出
到屏幕上,如果数组中没有该整数,则输出“无此整数”。 展开
键盘输入一个整数,请用二分查找法在数组中找出该整数,并将其下标输出
到屏幕上,如果数组中没有该整数,则输出“无此整数”。 展开
1个回答
展开全部
#include <stdio.h>
int search(int A[], int n, int key)
{
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high) {
mid = (low + high) / 2;
if (A[mid] == key) {
return mid;
}
if (A[mid] < key) {
low = mid + 1;
}
if (A[mid] > key) {
high = mid - 1;
}
}
return -1;
}
int main()
{
int arry[] = { 12, 23, 34, 56, 78, 98, 256, 789 };
int key;
printf("请输入需要查找的数字:");
scanf("%d",&key);
int ret = search(arry, sizeof(arry),key);
if (-1 == ret) {
printf("未找到所需要查找的数字:");
}
else {
printf("找到所需数字,其下标为%d\n",ret);
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询