题目:求1-1/3+1/5-...+1/(2n-1)的和,当第n项的绝对值小于1e-6时停止相加,输出之前各项之和。
#include<stdio.h>
void main()
{
double s=0,n=1;
int r=-1;
for(;1/n>1e-6;n+=2)
{
s=s+r/n;
r=-r;
}
printf("%.6lf",s);
}
通过if判断n的值进行判断
#include<stdio.h>
void main()
{
int n=1;
double x=1,s=0;
for(;x>1e-6;n++)
{
if(n%2!=0)
x=-x;
s=s+x;
x=1.0/(2*n+1);
}
printf("%.6lf",s);
}
运算结果相同:
-0.785398