天神下饭... 发表于 2020-11-6 10:21:07

帮我看看哪里错了

#include <stdio.h>
#include <math.h>
int main(){
    double f=1;
    double a=1,b,c,eps,S=0;
    scanf("%lf",&eps);
    c=1; b=1;
    while(b>eps){
    S+=a;
    c+=3;
    f=-f;
    a=f/c;
    b=fabs(a);
   }
    printf("%.6f",S);
    return 0;
}

jackz007 发表于 2020-11-6 10:21:08

本帖最后由 jackz007 于 2020-11-6 15:29 编辑

       我给楼主整理了一下:
#include <stdio.h>

int main()
{
      double c = 1 , f = 1 , S = 1 , eps ;
      scanf("%lf" , & eps)               ;
      while(1.0 / c > eps) {
                c += 3                     ;
                f = - f                  ;
                S += f * 1.0 / c         ;
      }
      printf("%.6f\n" , S)               ;
}

sunrise085 发表于 2020-11-6 13:10:45

把循环条件的运算符 > 改为 >=

清班长来学C 发表于 2020-11-6 13:19:46

代码正确的啊,你显示哪里错??

天神下饭... 发表于 2020-11-6 19:39:05

sunrise085 发表于 2020-11-6 13:10
把循环条件的运算符 > 改为 >=

还是不对。。。

天神下饭... 发表于 2020-11-6 19:40:22

清班长来学C 发表于 2020-11-6 13:19
代码正确的啊,你显示哪里错??

输入4E-2 我得到的是0.81
PTA上的答案是0.85

天神下饭... 发表于 2020-11-6 19:41:19

jackz007 发表于 2020-11-6 15:04
我给楼主整理了一下:

谢谢dalao

星辰大海噢 发表于 2020-11-6 19:57:14

同问大佬

清班长来学C 发表于 2020-11-8 22:39:17

天神下饭... 发表于 2020-11-6 19:40
输入4E-2 我得到的是0.81
PTA上的答案是0.85

我输出是正确的。。。。
页: [1]
查看完整版本: 帮我看看哪里错了