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

C语言中基于现有while循环实现1到n数字乘积的方法问询

解决1到n乘积计算的问题

你的问题出在两个核心点:未正确初始化乘积变量,以及**result *= i;的执行位置错误**,以下是具体修改方案:

  • 先在while循环前声明并初始化乘积变量:
    乘法的初始值必须设为1(若初始为0,结果永远是0),如果n较大(比如超过12),建议用long long避免整数溢出:

    // 小n用int足够,大n换long long
    int result = 1;
    
  • 调整result *= i;的位置到i++;之前,确保每次循环先计算当前i的乘积,再让i自增。修改后的完整代码:

    // 假设i和n已提前声明初始化,比如int i=1, n=5;
    int result = 1;
    while( i <= n ) {
        printf("%d\n",i);
        result *= i; // 先乘当前i的值
        i++;
    }
    // 循环结束后输出乘积结果
    printf("1到%d的乘积是:%d\n", n, result);
    

如果之前你把result *= i;放在i++;之后,第一次循环i会先变成2,乘积从2开始计算,漏掉了1,自然得不到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 00:17:01