用二分法找数,我的程序哪不对啊?

来源:百度知道 编辑:UC知道 时间:2024/07/07 15:49:41
用二分法从一个已排好序的数组中找输入的数,找到输出该数的下标,未找到输出"未找到".
这是我编的,返回的search为什么没有值啊?
#include<stdio.h>
void main()
{
int search(int a[],int);
int a[]={13,24,25,44,57,63,66,78,90,100},n;
scanf("%d",&n);
search(a,n);
if(search!=0)
printf("%d\n",search);
else
printf("未找到\n");
}
int search(int a[],int)
{
int n,mid,low=0,h=9,flag=0;mid=(low+h)/2;
if(n>a[9]||n<a[0])
return(flag);
else
{
while(h>=low)
{
if(n=a[mid])
{
flag=mid;
break;
}
else if(a[mid]>n)
{
h=mid;
}
else
{
low=mid;
}
}
return(flag);
}
}

你哪有返回search?
你应该在调用search(a,n)的时候把返回值赋给一个变量。。然后判断这个变量是多少。。如:int searchValue = search(a,n);

你这语法。。

if(search!=0) 这句什么意思 看search是不是个空指针?

你应该去 C/C++提问吧