求c语言大神 题目:编写查找函数search(),实现如下功能。
发布网友
发布时间:2022-05-01 06:45
我来回答
共2个回答
热心网友
时间:2022-06-25 17:09
#include <stdio.h>
int search(int arr[],int len,int num)//arr为序列,len为序列长度,num为要查找的数
{
int start,end,mid;
start=0;
end=len-1;
mid=(start+end)/2;
while(start<=end)
{
if(arr[mid]>num)
{
end=mid-1;
mid=(start+end)/2;
continue;
}
if(arr[mid]<num)
{
start=mid+1;
mid=(start+end)/2;
continue;
}
return mid+1;
}
return -1;
}
int main()
{
int a[100],i,m,num,pos;
printf("输入序列长度:");
scanf("%d",&m);
printf("输入一个长度为%d的有序序列:\n",m);
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
printf("输入你要查找的数:");
scanf("%d",&num);
pos=search(a,m,num);
if(pos==-1)
printf("未能在序列中找到你要查找的数。\n");
else
printf("你要查找的数在第%d个位置\n",pos);
return 0;
}
热心网友
时间:2022-06-25 17:09
int search(int a[], int n, int x)
{ int k;
for (k=0; k<n; k++)
{if (a[ k]==x)
return k;
}
return -1;
}