入门级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的时候按大小顺序的……所以我就没排序……入门嘛……虽然排序也学过……加一下就好惹…… 展开
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的时候按大小顺序的……所以我就没排序……入门嘛……虽然排序也学过……加一下就好惹…… 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询