只要遍历数组
然后将每个元素与要查询的值进行相减
取减得的绝对值最小的那个就是了
下面是一个简单的代码
#include <
stdio.h>
#include <
stdlib.h>
int find(int *a,int n,int x)
{
int i;
int min=abs(*a-x);
int r=0;
for(i=0;i < n;++i)
{
if(abs(a[i]-x) < min)
{
min=abs(a[i]-x);
r=i;
}
}
return a[r];
}
int main(int argc,char **argv)
{
int a[20];
int i;
for(i=0;i < 20;++i)
{
a[i]=rand()%20;
printf("%d ",a[i]);
}
printf("\n");
printf("与5最接近的数是: %d\n",find(a,20,5));
return 0;
}