答案结果为0,浮点型数据

问题遇到的现象和发生背景

为什么最后得到的答案是0.000000,是代码哪里有问题吗

问题相关代码,请勿粘贴截图
#include <stdio.h>
int main(){
    long double a,b,c;
    c=0;
    a=1.0;
    while(b>1e-6){
        c=c+1.0/a;    
        a=-(a+2.0);
        b=1.0/a;
        if(a<0){
            b=-(1.0/a);
        }
    }
    printf("%lf",4*c);
    return 0;
}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

printf("%lf",4*c);
中%lf换成%f试试

在这里我提个建议哈,发出提问的时候注意表明自己的这段代码是用来做什么的或者想到达到什么样的效果,而不是说只放一张截图然后说自己的程序为什么错,因为有些问题要根据使用的场景来判断到底哪里有问题。

因为没有给b初始化数值,默认是0,while(b>1e-6)条件为假不会进入循环,直接执行printf("%lf",4*c);而c初始化值是0,所以打印出来的结果就是0.000000

不是0.0000000还能是啥,你输出C,前面做那么多有啥用

4*c,额……c==0