【注意】理解题意:知道最后一项的绝对值不大于给定的精度 的意思是 前n-1项都是大于给定的精度 最后一项小于等于给定的精度,如果用这个
问题:最后一项是不大于,但这个最后一项就退出循环了
正解
#include<stdio.h>
int main()
{
int i = 0;
double sum = 0;
double eps = 0;
scanf_s("%lf", &eps);
for (i = 1; ; i+=3)\\注意,这里for的条件是留空的】
{
if (i % 2 == 0)
sum -= 1.0/i; \\ 注意,这里是1.0而不是1
elseif(i%2!=0)
sum += 1.0 / i;
if ((1.0 / i) <= eps)
break;
}
printf("sum = %.6lf", sum);
return 0;
}