You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量测试C语言斐波那契数列程序并输出结果至文本文件?

解决C语言批量测试斐波那契函数及文件输出问题

一、调用单独文件中的斐波那契函数

把斐波那契函数拆分到独立文件里,需要用头文件声明+源文件实现的方式,具体步骤如下:

  1. 创建头文件 fib.h,用于声明函数接口:

    #ifndef FIB_H
    #define FIB_H
    
    // 声明计算第n个斐波那契数的函数(用long long避免大数溢出)
    long long fib(int n);
    
    #endif
    
  2. 创建实现文件 fib.c,编写斐波那契函数的具体逻辑:

    #include "fib.h"
    
    long long fib(int n) {
        if (n <= 0) return 0;
        if (n == 1 || n == 2) return 1;
        // 用迭代版本避免递归栈溢出,适合大n值测试
        long long a = 1, b = 1, c;
        for (int i = 3; i <= n; i++) {
            c = a + b;
            a = b;
            b = c;
        }
        return b;
    }
    
  3. 创建批量测试程序 test_fib.c,调用斐波那契函数并处理文件输出:

    #include <stdio.h>
    #include "fib.h"
    
    int main() {
        // 定义批量测试的输入用例
        int test_cases[] = {1, 5, 10, 15, 20, 30, 40};
        int case_count = sizeof(test_cases) / sizeof(test_cases[0]);
    
        // 打开输出文件,"w"表示覆盖写入,文件不存在则自动创建
        FILE *fp = fopen("fib_results.txt", "w");
        if (fp == NULL) {
            printf("无法打开输出文件!\n");
            return 1;
        }
    
        // 遍历测试用例,计算并写入文件
        for (int i = 0; i < case_count; i++) {
            int n = test_cases[i];
            long long result = fib(n);
            // 同时写入文件和控制台,方便核对
            fprintf(fp, "第%d个斐波那契数:%lld\n", n, result);
            printf("第%d个斐波那契数:%lld\n", n, result);
        }
    
        // 必须关闭文件,强制刷新缓冲区到磁盘
        fclose(fp);
        printf("测试结果已写入fib_results.txt\n");
    
        return 0;
    }
    
  4. 编译运行
    在命令行用gcc编译(Windows/macOS/Linux通用):

    gcc fib.c test_fib.c -o test_fib
    

    运行生成的可执行文件:

    ./test_fib  # Linux/macOS
    test_fib.exe  # Windows
    

二、解决输出文件为空的问题

文件为空通常是以下几个原因,对应解决办法:

  • 未关闭文件:C语言文件操作依赖缓冲区,不调用fclose(fp)的话,内容可能留在内存里没写到磁盘,必须在写入完成后关闭文件。
  • 文件打开失败:比如路径错误、权限不足,一定要检查fopen的返回值,如果是NULL就报错退出,避免后续无效写入。
  • 无实际写入内容:比如测试用例数组为空、计算逻辑出错导致fprintf没执行,可以先在控制台打印结果,确认计算流程正常。
  • 打开模式错误:如果用"r"(只读)模式打开要写入的文件,会导致无法写入,必须用"w"(覆盖)或"a"(追加)模式。

内容的提问来源于stack exchange,提问作者Henry T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:55:22