急~~~急~~C语言问题

从键盘输入一个数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则打印"Nofound".... 从键盘输入一个数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则打印"No found". 展开
 我来答
zmjeffwc
2008-10-09 · 超过20用户采纳过TA的回答
知道答主
回答量:146
采纳率:0%
帮助的人:48.1万
展开全部
#include <stdio.h>

int divide_find(int [],const int ,int,int );
int array[20];
int main()
{
int tmp_a,tmp_result;
for(int i=0;i<20;i++) array[i]=i;

scanf("%d",&tmp_a);
tmp_result=divide_find(array,tmp_a,0,19);
if (tmp_result>-1)
printf("find %d\n",tmp_result);
else
printf("No found\n");
return 0;
}

int divide_find(int a[],const int p ,int start,int end)
{
if(start<=end)
{
if (p==a[(start+end)/2])
return (start+end)/2;
else
{
if (p<a[(start+end)/2])
divide_find(a,p,start,(start+end)/2-1);
else
divide_find(a,p,(start+end)/2+1,end);
}
}
else

return -1;
}
_brianyang_
2008-10-09 · TA获得超过280个赞
知道小有建树答主
回答量:96
采纳率:100%
帮助的人:74.6万
展开全部
如果不是有序数组的话,用折半法查找有意义么- -!

如果是有序数组,用个递归算法就可以了。数据结构教材上有的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bbf13573b
2008-10-09 · 超过74用户采纳过TA的回答
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:205万
展开全部
那你先要给数组排序,然后就是算法的问题了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zf19870131
2008-10-09 · TA获得超过1076个赞
知道小有建树答主
回答量:1141
采纳率:0%
帮助的人:805万
展开全部
几个 if 不就可以出来了么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式