兰州大学萃英电子联盟 2022-10-25 15:56 采纳率: 88.9%
浏览 21
已结题

对循环无法跳出的问题


#include<stdio.h>
int main ()
{
    int n=1;
    double s1,s2=0,s3,x,x1,x2;
    x= n;
    x1=2*x+1;
    x2=4*x*x;
    s1=s3=x1/x2;
    do
    {
    s2+=s1;
    x++;
    s1=-s1;
    }while(s3>0.001);
    printf("%.6f",s2);
    return 0;
}

运行后一直没有任何显示

img


我怀疑是循环没有跳出,但找不出来
原题

img

  • 写回答

4条回答 默认 最新

  • 浪客 2022-10-25 16:05
    关注

    循环中s3的值没有变,死循环了

    int main()
    {
        int n = 1;
        double s1, s2 = 0, s3, x = 1, x1, x2;
        do
        {
            x1 = 2 * x + 1;
            x2 = 4 * x * x;
            s1 = x1 / x2;
            s2 += n * s1;
            x++;
            n = -n;
        } while (s1 >= 1e-3);
        printf("%.6f", s2);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月2日
  • 已采纳回答 10月25日
  • 创建了问题 10月25日