2401_86531504 2024-12-23 11:29 采纳率: 84.6%
浏览 10
已结题

哪错了 为什么精度不够输入5输出的不是样例给的数 我用double数组也没错呀

哪错了 为什么精度不够输入5输出的不是样例给的数 我用double数组也没错呀

img

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2024-12-23 14:22
    关注

    问题在代码的第7行和第13行里,循环的次数未达到,所以出现误差,修改如下:

    #include <stdio.h>
    int main()
    {
        int n;
        scanf("%d", &n);
        double a[105];
        for (int i = 0; i <= n; i++) { // 修改
            a[i] = (double)1.0 / (2 * i + 1);
            if (i % 2 != 0)
                a[i] = a[i] * (-1.0);
        }
        double sum = 0;
        for (int i = 0; i <= n; i++) { // 修改
            printf("%lf\n", a[i]);
            sum = sum + a[i];
        }
        printf("%.2lf", sum);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 12月23日