入门级C语言问题【二分法找数组中元素】求解哪里错了

#include<stdio.h>intsearch(doublea[],intn,doublekey){intstart,end,mid;start=0;end=n-1... #include<stdio.h>
int search(double a[], int n, double key)
{
int start,end,mid;
start=0;
end=n-1;
while(start<=end)
{
mid=(start+end)/2;
if(key==a[mid])
return mid;
else if(key>a[mid])
start=mid+1;
else
end=mid-1;
}
printf("是数组中的第%d个元素\n",&mid);
return-1;
printf("数组中不存在该数\n");
}
int main()
{
double a[10];
int i;
double key;
for(i=0;i<10;i++)
{
printf("请依次输入数组中的十个元素\n");
scanf("%d",&a[i]);
}
printf("请输入一个要在数组中查找的数\n");
scanf("%d",&key);
search(a,10,key);
return 0;
}
目测是函数错惹
对惹这是要求输入数组a的时候按大小顺序的……所以我就没排序……入门嘛……虽然排序也学过……加一下就好惹……
展开
 我来答
百度网友f4f79435d
2015-11-27 · TA获得超过235个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:127万
展开全部
你的数组没有排序sort,用二分法找元素肯定没有意义
举例:
1,2,3,4,5,6,7,8,9,10中找6你可以用二分法
但是
1,3,5,7,9,2,4,6,8,10你用二分法怎么找?先排序

问题二
你数组定义成了整形int
你函数里面的参数又变成了double实形
start = a[0];
end = a[n-1];
追问
哦这个你就不用管啦我忘记说啦
因为是入门所以这道题要求的是按大小顺序输入的数组……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式