C语言问题,求π的近似值知道某一项的绝对值小于10^-6为止 5
利用公式“π/4=1-1/3+1/5-1/7+......”求π的近似值直到某一项的绝对值小于10^-6为止。哪位大哥能帮帮我。要有完整的代码哦。最后注释明了一点...
利用公式“π/4=1-1/3+1/5-1/7+......”求π的近似值直到某一项的绝对值小于10^-6为止。
哪位大哥能帮帮我。要有完整的代码哦。最后注释明了一点 展开
哪位大哥能帮帮我。要有完整的代码哦。最后注释明了一点 展开
3个回答
展开全部
#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
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
# 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);
}
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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询