c - 从 C 语言文件中查找最大和最小 float

标签 c

我正在使用 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/

相关文章:

c++ - 设置 cl.exe 的输出路径

c - 传递给接受 char 参数的函数时打印 int 的实际值

c - 我的 pthread 没有调度。在 C 中

c - 一个数的质因数

c - float * 和 int * 的不同 printf 行为?

c - timespec 和 struct timespec 有什么区别?

c - C 预处理器中是否可以使用部分宏应用程序/currying?

c - 获取当前用户的最后一次登录

c - 在 .m 文件中访问作为全局变量的结构

Mixter 的 IP Checksum 功能的代码说明(C 和 Linux)