C语言程序设计,计算π的近似值

公式是2*(2^2/1*3)*......*(2n)^2/(2n+1)(2n-1)#include<stdio.h>main(){intn=1,t=2;floata=1;... 公式是2*(2^2/1*3)*......*(2n)^2/(2n+1)(2n-1)
#include<stdio.h>
main()
{
int n=1,t=2; float a=1;
while(t-(4*n*n)/(4*n*n-1))>=1e-6)
{ a=a*t;
t=(4*n*n)/(4*n*n-1);
n++; }
printf("%f ",a);
}
这是我的程序,在进去循环体一次后就退出了,求指点
展开
 我来答
xuzhouliuying
高粉答主

2018-04-18 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.4亿
展开全部

算法错误。程序思路非常混乱。n++只一次,并没有循环,那么一开始计纳枣算x0时n=1,以后每次计算x0的值时n都等于2。而计算公式是要对n进行累加循环的咐帆。

#include <stdio.h>
void main(){
double i,k=1;
for(i=1;k*(i*2*i*2/((i*2-1)*(i*2+1))-1)>洞简拆=1e-6;i++)
k*=i*2*i*2/((i*2-1)*(i*2+1));
printf("PI=%.2lf",k*2);
}

寒寒家
2014-12-09 · TA获得超过2919个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1956万
展开全部
fabs=(1/(i+i+2)); 这里应该是*号

另缺御外这举扮州里涉及到整形数字,最好还是把其中所有正蔽的1,2都写成1.0, 2.0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leywong
2013-10-24 · TA获得超过339个赞
知道答主
回答量:76
采纳率:0%
帮助的人:66.3万
展开全部
int n=1, t=2 应毕袜该改为float n=1, t=2。早拍整手睁激型时t-(4*n*n)/(4*n*n-1)的结果为整形。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu_pt
2011-11-14 · TA获得超过100个赞
知道小有建树答主
回答量:364
采纳率:0%
帮助的人:196万
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{ float sum=0.0;float i=1,d=1;
while(1/i>=1e-6)
{
sum=sum+d/i;
d=d*(-1);
i=i+2;
}
sum=sum*4;
printf("%10.8f\n"毕亩,sum);

system("pause");
return 0;
}

输出结竖数乎果为余悉:3.14159369
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BrotherGao
推荐于2017-10-06 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:400万
展开全部
楼主你好!
错误一:while(t-(4*n*n)/(4*n*n-1))>=1e-6)里面少了一个左括号;
错误二:主要你是float和int混合在一起销敬坦计算,特别你到了t-(4*n*n)/(4*n*n-1)和 t=(4*n*n)/(4*n*n-1);这两步,相当有问题,结果并不是你想象那样是个带6位的小数,稿链而是得到整数!第一次n=1时候;t-(4*n*n)/(4*n*n-1)=1条件成立,所以进入循环,a=2.000000,当t=(4*n*n)/(4*n*n-1),计算后t为1,,n++为2;第亏桐二次到t-(4*n*n)/(4*n*n-1)=0,条件不成立,跳出循环,所以为什么a为2.000000原因!
下面是我改了的!
#include<stdio.h>
int main()
{
int n=1;
float a=1.0,t=2.0;
while((t-(4.0*n*n)/(4.0*n*n-1.0))>=1e-6)
{
a=a*t;
t=(4.0*n*n)/(4.0*n*n-1.0);
n++; }
printf("%f ",a);
}
结果为3.131604
算是接近π吧,偏差的原因,我估计是float精确到小数后六位,上面的多次循环,导致最后偏差有点大,我是这样想的!
求大家指正!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式