题目:求1-1/3+1/5-...+1/(2n-1)的和,当第n项的绝对值小于1e-6时停止相加,输出之前各项之和。
通过r进行符号反转
#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
?
发个问号就知道是你