在 C 中计算系列

Calculate Series in C

我为这个系列写了一个 C 程序。但是当我输入 n = -8 和 m = 2 时,结果为零。

为什么以及如何解决?

Series here

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

int main()
{
    int n,m;
    double sum = 0;
    printf("Enter n:\n");
    scanf_s("%d",&n);

    printf("Enter m:\n");
    scanf_s("%d", &m);

    for (int i = -10; i <= m; i++)
    {
        for (int j = 1; j <= n; j++)
        {
            sum += (pow((i + j), 3) / pow(j,2) );
        }
    }
    printf_s("%f",sum);
}
for (int j = 1; j <= n; j++)
        {
            sum += (pow((i + j), 3) / pow(j,2) );
        }

当您尝试输入 n=-8 时,此循环将无法工作,因为 j=1 并且条件设置为工作直到 j<=n

在您的代码中,修改名为 sum 的变量的唯一表达式位于内部循环中。仅当其控制表达式 j <= n 为真时,循环才会执行。

您使用 1 的值初始化 j。如果您给 n 任何小于 1 的值,循环将不会执行,因为 j <= n 为假。

由于变量sum的初始值为0,修改sum的表达式没有执行,所以输出为0.