为什么最后得到的答案是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