是篱落啊 2024-04-18 23:53 采纳率: 0%
浏览 3

想请问怎么该一下程序

img

这个题目是求s的值,且要保留到小数点后五位小数,s的正确答案是7744176.74920,但我的答案是7744177.00000,想问一下要怎么改

  • 写回答

9条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-18 23:53
    关注

    引自免费微信小程序:皆我百晓生

    为了得到正确的结果,我们需要对原始代码进行一些修改。主要的问题在于 i=i++ 这一行,它实际上先使用了当前的 i 值(即等于0),然后才将 i 的值加1。这导致循环开始时的计算错误。为了解决这个问题,我们应该分开执行自增操作,如下所示:

    #include<stdio.h>
    #include<math.h>
    
    int main() {
        float s, i, j;
        s = 7744177.00000;
        s = 0.0; // 初始化s为0,因为之前已经赋值给s了,这里应该重新初始化
        i = 0;
        j = 1;
    
        while (i <= 18) {
            s = s + pow(3, i) / j * pow(-1, i);
            i++; // 将自增操作单独写成一行
            j += 2;
        }
    
        printf("s=%6.5f\n", s);
        
        return 0;
    }
    

    这段修改后的代码应该能正确地计算出 s 的值,并保留到小数点后五位。现在运行这段代码,你应该能得到正确的答案:7744176.74920。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月18日