下面是一个二分查找的库函数实例,写的很简单,没有做什么错误处理,变量定义也很简单,主要是为了实现功能,系统的朋友可以看看。
#include <stdio.h>
#include <stdlib.h>
struct num{
int a;
int b;
}numab[]={
{1,10},
{2,9},
{3,8},
{4,7},
{5,5},
{6,4},
{7,3},
{8,2},
{9,1},
{10,1},
};
int Compare(const void *comparea,const void *compareb)
{
struct num *a=(struct num*)comparea;
struct num *b=(struct num*)compareb;
return a->a-b->a;
}
int main(int argc, char *argv[])
{
int num=0;
struct num numc;
struct num *rnum;
if(argc<2)
{
return -1;
}
num=atoi(argv[1]);
numc.a=num;
rnum=bsearch(&numc,numab,sizeof(numab)/sizeof(struct num),sizeof(struct num),Compare);
printf("rnum->a:%d\nrnmu->b:%d\n",rnum->a,rnum->b);
return EXIT_SUCCESS;
}