qq_57628994 2022-01-08 12:58 采纳率: 90.9%
浏览 44
已结题

为什么输出总是0,看着也没啥问题0.0


#include<stdio.h>
#include<math.h>
int main()
{
    int n=0,sum=0,flag=1;
    double eps=0.0001;
    //scanf("%lf",&eps);
    while(fabs(1.0/(2*n+1))>=eps)
    {
        sum=sum+1.0*flag/(2*n+1);
        flag=-flag;
        n++;
    }
    printf("%.4lf\n",4*sum);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • fuill 2022-01-08 13:03
    关注

    int sum 改为 double sum

    img

     
    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int n=0,flag=1;
        double eps=0.0001,sum=0;
        while(fabs(1.0/(2*n+1))>=eps)
        {
            sum=sum+1.0*flag/(2*n+1);
            flag=-flag;
            n++;
        }
        printf("%.4lf\n",4.0*sum);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月16日
  • 已采纳回答 1月8日
  • 创建了问题 1月8日