我正在使用 C 编写一个程序,只是为了从包含大约 500 个 float (例如 54.54)的输入文件中查找最大和最小数字。我可以让程序运行,但输出显示我的最小值是 0,最大值是 54.88,这是文件中的第一个数字。 这是我到目前为止所拥有的。
#include <stdio.h>
int main(int argc, const char * argv[])
{
FILE * fp;
fp=fopen("file.txt","r");
if (fp==NULL)
{
printf("Failed to open");
}
float i;
float min ;
float max ;
{
fscanf( fp, "%f", &i);
if (i < min)
min = i;
if (i > max)
max = i;
}
printf("Data range is: %f %f \n", min, max);
return 0;
}
最佳答案
最小值/最大值应初始化为正确的值。例如。
float inf = 1.0 / 0.0; // also in math.h as INFINITY?
float max = -inf;
float min = inf;
float i;
另一个选项是将 min 和 max 初始化为从文件中读取的第一个值。这是编写循环代码的一种方法:
while (fscanf(fp, "%f", &i)==1) //
{
...
}
关于c - 从 C 语言文件中查找最大和最小 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377214/