① 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分发的回答,既然你没有追问,我只能通过修改这个回答,慢慢解释一下:
powi函数是为了不引用庞大的math库,而自己写的一个简单的正整数幂的函数(math库里有double pow(double, double),这个运算过程中不需要小数的幂值,就用循环乘法来实现了。
item函数 是每个项的计算过程,仔细看的话可能会发现,这些项并不是 i=1,2,3,4... 而是 i=1,3,5,7... 这个是为了符合级数的项中的值,都是奇数在做运算。
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