本题要求编写程序,计算序列 1 + 1⼀3 + 1⼀5 + ... 的前N项之和.求精确到小数点6位,在线等!

2025-05-08 22:12:09
推荐回答(3个)
回答1:

这类题有了小数点后精度要求,就不宜再输入项数N了,否则在N较小情况下就不可能达到精度要求了。正确解法是判断当前项的值的精度,精度达到要求后就可终止计算。比如这里要求精确到小数点后6位,就可考虑当前项的值小于等于0.0000001时终止,因为增加或减少一个影响力不超过小数点后7位的数是不会影响到小数点后6位的精度的。举例如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int i;
double s,t;
for(s=0,t=i=1;t>0.0000001;s+=(t=1.0/i),i+=2);
printf("s≈%.6f\n",s); 
return 0;
}

试运行结果如图:

回答2:

#include 

int main()
{
    double sum = 0, i = 1;
    int m, n;
    scanf("%d", &n);
    for (m = 1; m <= n; m++, i += 2)
        sum += 1/i;
    printf("sum = %lf\n", sum);
    return 0;
}

回答3: