C用于查找文件中最接近的数字的功能

时间:2016-01-11 21:17:10

标签: c

我正在制作一个C函数,我需要在计算等效值后找到文件中最接近的标准电阻值。 req1是等效电阻值。 现在它只有在等效值等于文件中的某个值时才有效。

我的问题是我如何阅读文件,计算哪个是最接近的数字?例如,如果req1 = 1.4,在读取文件后,它应该给我1.5。

文件的样子(标准阻力):

1.0 
1.1 
1.2
1.3
1.5

代码:

void CalcClosest(char *req1)
{
    FILE* file;
    char temp[1000];

    file = fopen("StandardResistance.txt", "r");
    if(file == NULL){
        printf("Error!");
        return;
    }
    while(fgets(temp, 1000, file)!=NULL) {
        if((strstr(temp, req1)) != NULL) {
            printf("Standard resistance equivalent: ");
            printf("%s", temp);
        }

        // code to find the closest number

    }

    fclose(file); 
}

2 个答案:

答案 0 :(得分:1)

您可以使用(varA=0.1;varB=0.2;varC<0.3;varD>=0.4) <?0.1> (varA=1.1;varB=1.2;varC<1.3;varD>=1.4) ,如果您希望最接近搜索值的值,则会执行此操作

fscanf()

答案 1 :(得分:0)

您希望这样做的方法是:将所有数字放入数组中作为双精度数(请参阅atof functionrealloc来管理数组),计算{{之间的差值的绝对值} 1}}和数组的每个值,找到最接近零的值(这可以用简单的req1循环完成),如下所示:

for