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

如何用C语言的if-else逻辑计算指定级数的和?代码问题修复

修正级数求和的C语言代码

首先明确你的级数规则对应的逻辑:

  • 项的分母从1到n依次递增,分子为x的幂次,每次递增2(即第m项的分子为x^(2*(m-1)));
  • 分母为奇数时:先从总和中减去当前项,若存在下一项(分母为偶数)则将其加入总和;
  • 分母为偶数时:直接将当前项加入总和。

以下是添加if-else逻辑后的修正代码:

#include <stdio.h>
#include <math.h>

int main() {
    double x, sum = 0;
    int n;

    // 输入x和项数n
    printf("Enter the value of x: ");
    scanf("%lf", &x);
    printf("Enter the number of terms n: ");
    scanf("%d", &n);

    // 遍历每一项的分母m(从1到n)
    for (int m = 1; m <= n; ) {
        // 计算当前项的值
        double current_term = pow(x, 2 * (m - 1)) / m;
        
        if (m % 2 == 1) {
            // 分母为奇数:先减当前项
            sum -= current_term;
            // 检查是否存在下一项,存在则加下一项
            if (m + 1 <= n) {
                double next_term = pow(x, 2 * m) / (m + 1);
                sum += next_term;
                m += 2; // 跳过已处理的下一项
            } else {
                m += 1;
            }
        } else {
            // 分母为偶数:直接加当前项
            sum += current_term;
            m += 1;
        }
    }

    printf("The sum of the series is: %.4lf\n", sum);
    return 0;
}

代码说明

  1. 循环变量m代表每一项的分母,从1遍历到n;
  2. 当分母m为奇数时,先执行减当前项的操作,若后续还有项则直接处理下一个偶数分母项并加到总和,之后步长设为2跳过已处理的项;
  3. 当分母m为偶数时,直接将当前项加到总和,步长设为1处理下一项;
  4. 若你原本的级数分母是阶乘而非整数,只需将代码中计算分母的部分替换为阶乘计算即可(注意阶乘仅1!为奇数,后续均为偶数,逻辑会简化)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 04:34:55