我正在制作一个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);
}
答案 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 function和realloc来管理数组),计算{{之间的差值的绝对值} 1}}和数组的每个值,找到最接近零的值(这可以用简单的req1
循环完成),如下所示:
for