/*有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。*/
#include<stdio.h>
#define N 10
int main()
{
int a[N];
int i,num,mid,low,high,local;
int flag=1;
printf("请输入%d个整数\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("请输入要查找的数:\n");
scanf("%d",&num);
while(flag==1)
{
low=0;
high=N-1;
if(num<a[0] || num>a[N-1])
{
printf("not found!\n");
break;
}
while(low<=high)
{
mid=(low+high)/2;
if(num==a[mid])
{
local=mid+1;
printf("%d是数组中第%d个数。\n",num,local);
flag=0;
break;
}
else
{
if(num<a[mid])
high=mid-1;
else
low=mid+1;
}
}
if(low>high)
{
flag=0;
printf("not found!\n");
}
}
}
C语言:有N个数从小到大的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个数。如果不在数组中,打印“not found”。
最后发布:2020-04-26 11:35:35首次发布:2020-04-26 11:35:35