C程序数学求解和代码结果之间的区别

C program difference between mathematical solve and code result

我喜欢用c编程来计算下面的公式。公式如下:

我根据这个公式写了c程序

#include<stdio.h>
#include<math.h>
int main(){
     int n,i;
     double sum=0;
     printf("Enter the value for n");
     scanf("%d",&n);
     for (i=0; i<=n; i++){

     sum = sum + 4*(pow(-1,i))/((2*i)+1);
     }
     printf("sum of the series: %lf",sum);
}
return 0;

我正在分享我在运行程序后得到的结果和我在数学计算结果时得到的结果。

从图 1 可以看出,如果我尝试计算 n 的不同值(如 1、4、13)的总和,总和分别为 2.67、3.339、3.0702。

然而,当我试图用数学方法计算这个公式时,我得到了一些不同的结果。

数学上我得到了

n= 1 回答:3.2

n=4 答案:0.96825

任何人都可以指导我在代码中遗漏的内容吗?

谢谢。

在您的手动计算的第二次迭代中,2x1 + 1 = 3 但您将其视为 5