C语言:从键盘输入一个数,然后在一个整型一维数组a[20]中,用折半查找法找出该数是数组中第几个元素的值

如果该数不在数组中,则打印“Nofound”。... 如果该数不在数组中,则打印“No found”。 展开
 我来答
星月小木木
2016-01-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9971万
展开全部
#include <stdio.h>
int main()
{
int a[20]={16,15,18,1,12,57,10,9,38,7,6,5,4,32,2,1,,17,25,28,68};
int l=0,h=14,x,m;
printf("输入数字:");
scanf("%d",&x);
while(l<h)
{
m=(l+h)/2;
if(x==a[m]) break;
if(x>a[m])
h=m;
else
l=m;
if ((l==h) && x!=a[h]) {
printf("无此数");
return 0;
}
}
printf("是第%d个元素",m+1);
return 0;
}
1061231908
推荐于2016-05-06 · TA获得超过408个赞
知道小有建树答主
回答量:1037
采纳率:0%
帮助的人:528万
展开全部
#include<stdio.h>
void main()
{
int a[20],x,i,start,end,f=0;
printf("input 20 numbers:\n");
for(i=0;i<20;i++) scanf("%d",&a[i]);
printf("please enter the number:\n");
scanf("%d",&x);
for(start=0,end=19;start<=end;)
{
i=start+(end-start)/2;
if (x==a[i])
{
printf("%d",i+1);
f=1;
getch();
return;
}
else if (x>a[i]) {end = i-1;f=1;}
else {start=i+1; f=1}
}
if(f=0) printf("No found");
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式