#include <stdio.h>
#include<math.h>
int main()
{
int n=1;
double a,s=0;
do{
a=pow(-1,n-1)*(2*n+1)*1.0/((2*n)*(2*n));
s+=a;
n++;
}while(fabs(a)>pow(10,-3));
printf("%lf",s);
}
代码没问题,但是我输出的结果是0.552689......
觉得有用的话采纳一下哈
可以给你提供一个思路:
float sum作为最后结果。
用一个for或者while循环,每次循环i++。
float 一个 temp变量,用于存储循环内的计算结果。
在每一个循环内部,temp都是n的那个式子,(-1)^n-1则可以用i的整除来判断是-1还是1。如果判断temp<=10^-3,就跳出循环。
循环的最后需要sum+=temp。