注册 登录
编程论坛 C语言论坛

求派的一万位,带小数点

nightmareVX 发布于 2019-09-08 16:16, 1821 次点击
代码如下,不知道怎么把小数点放进去,求大神帮助!
#include <stdio.h>
int a=10000,b,c=35000,d,e,f[35001],g;
main() {
int i;
for(i=0;i<c;i++)
     f[i]=a/5;
while(c!=0)
     {
         d=0;
         g=c*2;
         b=c;
         while(1)
            {
                d=d+f[b]*a;
                g--;
                f[b]=d%g;
                d=d/g;
                g--;
                b--;
                if(b==0) break;
                d=d*b;
            }
         c=c-14;
         printf("%.4d",e+d/a);
         e=d%a;
    }
}

[此贴子已经被作者于2019-9-8 16:27编辑过]

2 回复
#2
zbjzbj2019-09-08 19:54
    c=c-14;
            if(c==35000-14)
                printf("%4.3f",(e+d/a)/1000.0);
            else
                printf("%.4d",e+d/a);

    e=d%a;
#3
bcbbcclbbc2019-09-10 14:15
这是我的看法,因为不太清楚你这个圆周率的算法,我就做了些验证:
在内循环外加了个输出语句
printf("%d*%d#%d@\n",d,g,b);

得到的结果是
31415926*0#0@

d的值应该就是需要转换的值
看了一下前面变量的定义,至少需要一个浮点型变量来存放b
         float h;
         h=(float)d;
         printf("%.5f\n",h/10000000);

以上是我的一些见解,仅供参考。
1