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

C语言实现1至14阶乘输出异常,请求错误排查

阶乘代码错误分析与修正

错误原因

  • 循环起始值与计算顺序问题:你的循环从i=0开始,第一次执行factor = factor * i时,1 * 0直接将factor置为0。后续所有循环中,0乘以任何数结果都是0,导致从1开始的阶乘输出全部异常。
  • 输出格式不够合理:用%f输出整数阶乘会显示为带小数的形式,比如1!会显示成1.000000,换成%.0f可以输出纯整数格式,更符合阶乘的预期展示。

修正后的代码(计算1~14的阶乘)

#include <stdio.h>

int main() {
    int i, bounds = 14;
    double factor = 1;

    for(i = 1; i <= bounds; i++){
        factor *= i;
        printf("%d          %.0f\n", i, factor);
    }

    return 0;
}

补充:如果需要包含0!(数学上0!等于1)

可以调整计算与输出的顺序,先输出当前阶乘再计算下一个:

#include <stdio.h>

int main() {
    int i, bounds = 14;
    double factor = 1;

    for(i = 0; i <= bounds; i++){
        printf("%d          %.0f\n", i, factor);
        factor *= (i + 1);
    }

    return 0;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:15:38