当前位置:首页 » 编程语言 » c语言里计算圆周率的近似值
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言里计算圆周率的近似值

发布时间: 2023-04-28 19:53:59

c语言编程求出圆周率的近似值。

#include <stdio.h>


int main()

{

double pi;

unsigned long i,n;

scanf("%lu",&n);

for(pi=1,i=1;i<=n;++i)

{

pi*=(i+1)/2*2.0 / ( (i+1)/2*2+(i-1)%2*2-1 );

}

printf("pi=%.10lf ",pi*=2);

return 0;

}

② C语言问题:求圆周率的近似值 谢谢啦~~

第一卜手空
pi=0
第二空档世
pi=pi+t
第三空
pi=pi*4
这是利用了一个求pi的公型蠢嫌式:pi/4=1-1/3+1/5-1/7......

③ 在C语言中编写函数,求出圆周率Pi的近似值

我们经常会运用C语言进行各种数学运算,那么如何团绝用C语言编写函数求圆周率Pi的近似值呢?下面我给大家分享一下。

工具/材料

Dev C++

  • 01

    首先打开Dev C++软件,新建一个C语言项塌搏姿目,如下图所示

  • 02

    然后在C语言文件中导入math库,并编写求Pi近似值的逻银顷辑代码,如下图所示

  • 03

    接下来我们编译编写好的C语言文件,如下图所示

  • 04

    最后运行C语言文件我们就得到Pi的近似值了,如下图所示

④ c语言面试题-求π的近似值

题目要求:

编写一个C程序,用来求出π的近似值。

题目分析:

求π的方法很多,这里两种最为常用的求π的方法。

方法:利用“正多边形逼近”法求π。

“正多边形逼近” 法求π的核心思想是极限的思想。假设一个直径d为搭信1的圆,只要求出该圆的周长C,就可以通过π=C/d的方法求出悉信π的值。所以关键是求出该圆的周长C。这里用“正多边形睁枝轮逼近”的方法求圆的周长。

运行结果:

⑤ C语言编程有公式 可以计算π的近似值。求前后两次迭代结果π 之差的绝对值小于e时相应的最小迭代次数n

代码如下:

#include<stdio.h>

int main() {

int n = 1;

double pi = 2.0 * 2 * 2/3; // n=1时pi的初值

double e; // 精度

scanf("%lf"搜答丛, &e);

举冲 while (1) {

++n;

int m = 2 * n;

double pn = pi * m / (m - 1) * m / (m + 1);

if (pn - pi < e) {

pi = pn;

世樱 break;

}

pi = pn;

}

printf("n=%d, pi=%lf ", n, pi);

return 0;

}

运行结果如下:

⑥ C语言的求π的值

#include <stdio.h>

#include <math.h>


int main(){

double pi=0,result;

int i=1;

int s=-1;

do{

s*=-1;

result=1.0/i*s;

i+=2;

pi+=result;

}while(fabs(result)>0.000001);

printf("pi=%10.4lf ",pi*4);

return 0;

}

⑦ c语言 根据公式求出π的近似值。

#include<stdio.h>


doublepowi(doublenum,intmulti){
doubler=1.0;
inti;
for(i=0;i<multi;i++){
r*=num;
宏游郑}
returnr;
}

doubleitem(intn){
doubler=1.0;
inti;
/*1.0*1/2*3/4*5/6.....*/
for(i=1;i<n;i++){
if(i%蔽颂2){
r*=i;
/*printf("*%d"磨御,i);*/
}else{
r/=i;
/*printf("/%d",i);*/
}
}
r*=1;
/*printf("*%d",1);*/
r/=n;
/*printf("/%d",n);*/
r*=powi(0.5,n);
/*printf("*%lf",powi(0.5,n));*/
/*printf("--item%d:%lf ",n,r);*/
returnr;
}

intmain(){
doublepd6=0.0,ci=0.0;
inti=1;


do{
ci=item(i);
pd6+=ci;
i+=2;
}while(ci>=1e-6);

printf("PI=%.6lf ",pd6*6);

return0;
}

完全按你的公式做的,结果真的对了,3.141592(这里对6位有效数字有个存疑,就是应该输出6位还是7位数字,理论上有效数字后面应该带上一个估值,用来修正有效数字的,如果要求真的那么严格,我可以给你写个函数用来输出6位有效数字)。

一般级数很少有用这个复杂的式子的吧,一般都是 1-1/3+1/5-1/7+1/9-1/11 这个式子,你的公式竟然也是对的。楼上的完全没看懂级数的项的规律。

-------------------------------------------------

以上是20:29分发的回答,既然你没有追问,我只能通过修改这个回答,慢慢解释一下:

  1. powi函数是为了不引用庞大的math库,而自己写的一个简单的正整数幂的函数(math库里有double pow(double, double),这个运算过程中不需要小数的幂值,就用循环乘法来实现了。

  2. item函数 是每个项的计算过程,仔细看的话可能会发现,这些项并不是 i=1,2,3,4... 而是 i=1,3,5,7... 这个是为了符合级数的项中的值,都是奇数在做运算。

  3. item里面的那些注释掉的 printf 是故意留下用来观察级数表达式的。由于每一项都是多个数值相乘或除,如1/2x3/4x5/6 其实就是1 * 2 / 3 * 4 ,这些printf可以在计算每一项的时候把整个过程打印出来。

级数的难点其实就是找到项的通用表达式,你的公式已经把表达式写的很清楚了,就看你把它提取成算法了

⑧ 用C语言求π的近似值

循环体里戚巧面的公式有点问题,我重新写了一下,代码如下:
void main()

{
double i, pi;
i=1.0,pi=0.0;
while (fabs(1.0/i) >= 1e-6){
pi=(pi + pow(-1.0,i+1)/(2*i-1));
i++;
}
printf("pi=%f\n"扰李,pi* 4);
system("pause");
}
注缓仔迟意输出的结果是pi*4,望采纳!

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

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

#include<stdio.h>
voidmain(){
doublei,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);
}

⑩ C语言计算圆周率的近似值

第一处:pi
第二处:t
第三处:4