大神快来 怎么用c语言自定义函数找出数组中与指定值最接近的数

如题所述

只要遍历数组

然后将每个元素与要查询的值进行相减

取减得的绝对值最小的那个就是了


下面是一个简单的代码

#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;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-05
只要遍历数组
然后将每个元素与要查询的值进行相减
取减得的绝对值最小的那个就是了
下面是一个简单的代码
#include
#include
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;
}
相似回答