C语言问题,求π的近似值知道某一项的绝对值小于10^-6为止 5

利用公式“π/4=1-1/3+1/5-1/7+......”求π的近似值直到某一项的绝对值小于10^-6为止。哪位大哥能帮帮我。要有完整的代码哦。最后注释明了一点... 利用公式“π/4=1-1/3+1/5-1/7+......”求π的近似值直到某一项的绝对值小于10^-6为止。
哪位大哥能帮帮我。要有完整的代码哦。最后注释明了一点
展开
 我来答
enochwills
推荐于2018-04-04 · TA获得超过4793个赞
知道大有可为答主
回答量:2031
采纳率:96%
帮助的人:1657万
展开全部
#include <stdio.h>

int main(void)
{
double pi = 0.0f, x = 0.0f, y = 0.0f, d = 0.0f; int i = 0, j = 0, k = 0;
do {
j = i + 1; /*求第一项分母*/
k = j + 2; /*求第二项分母*/
x = j;/*转化为浮点数*/
y = k;/*转化为浮点数*/
x = 1.0f / x;/*求第一项*/
y = 1.0f / y;/*求第二项*/
d = x - y;/*求两项差*/
pi += d;/*累加到π*/
i += 4;/*进行下一项*/
}while(x > 1e-6); /*直到某一项差绝对值小于目标误差*/
printf("π = %9.8f\n", pi * 4.0f);
return 0;
}

运行结果为:
π = 3.14159065
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自广化寺笔下生花的牛油果
2018-05-31
知道答主
回答量:1
采纳率:0%
帮助的人:873
展开全部
#include<stdio.h>
#include<math.h>
#define eps(a) fabs(1.0 / a) //定义精度
int main (){
double pi = 0, n1;
int j = 0; //符号计数
for (int i = 1; eps(i) > 1E-6; i += 2){
if (j % 2) { //偶数项为负数
n1 = - 1.0 / i;
}else n1 = 1.0 / i; //奇数项为正数
pi += (n1); //累加得到π / 4
j ++;
}
printf("PI=%10.8f\n", 4.0 * pi); //输出π
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
葬Cola
2010-06-22
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
# include<math.h>
main()
{
int s;
float n,t,pi;
t=1'pi=0,n=1.0,s=1;
while((fabs(t))>1e-6)
{
pi=pi t;
n=n 2;
s=-s;/*这一步是什么意思难道是使得式子交替正和负如果把s=-s改成-s=s会有什么后果*/
t=s/n;
}
pi=pi*4;
printf("pi=.6f\n",pi);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式