在 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
.
我为这个系列写了一个 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
.