资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

求圆周率的函数C语言指针 c语言中计算圆周率的值

C语言计算圆周率

#include stdio.h

乌什网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联公司2013年至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司

double fact(int n)   

double res = 1.0;

for(int i = 1; i = n; i++)  

res *= i;

return res; 

}

double multi(int n)  

double res = 1.0;

for(int i = 1; i = n; i += 2)

res *= i;

return res;  

}

int main()

{

double sum=1.0, item=1.0, eps = 1e-6;

for(int i = 1; item = eps; i++)

{

item = fact(i) / multi(2*i + 1);

sum = sum + item;

}     

printf("PI=%0.5lf\n", sum * 2);

return 0;

}

//这样可以得到3.14159

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

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

工具/材料

Dev C++

01

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

02

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

03

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

04

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

C语言 求圆周率~~

用的是如图的公式,下面是arctg展开的级数。

这个输出没有写好,一组是10位,如果前面是“0”就会少了,要完善一下。

N是定义 算多少组的,N=1000 时 N*10就是10000组,要算到100万位这种算法要好长时间,但是这是最简单的算法之一。

下面分成三个部分,第一是定义数组和

#define N 1000

#include  "math.h"

#include "string.h"

main()

{

auto double a1,b1,b2,c1,d,i=1.0,q=-1.0;

auto double n,g,r=10000000000.0;

static double a[N+1],b[N+1],c[N+1];

auto char *str3,str1[15],strs1[11*N],*p_strs1;

auto long p,j,k=1,m=1;

do {

printf("input p= ");

scanf("%ld",p);

} while(p=0  p100);

p = p + 1;

b[1]=r*20.0,c[1]=239*r;

do

{ q=-q,a1=0,b1=0,c1=0;

for(j=m;j=p;j++){c1=c[j]+c1*r,c[j]=floor(c1/57121),c1=c1-c[j]*57121;}

if (c[m]1e-5) m++;

for(j=k;j=p;j++){

a1=b[j]+a1*r,b[j]=floor(a1/25.0),a1=a1-b[j]*25.0;

d=b1*r+b[j]-c[j],b1=floor(d/i),a[j]=4*q*b1+a[j];

b1=d-b1*i;

}

if (b[k]=1e-5) {

k++ ;

printf("k=%ld ",k);}

i = i + 2;

}while(m=p);

do

{ q = -q, a1 = 0,b1 = 0;

for(j=k;j=p;j++) {

a1=b[j]+a1*r,b2=floor(a1/25),b[j]=b2;

a1=a1-b2*25,d=b2+b1*r;

b1=floor(d/i),a[j]=a[j]+4*q*b1;

b1=d-b1*i;

}

if (b[k]=1e-5) { k++;printf(" k= %ld",k);}

i = i + 2;

}while(k=p);

printf("\n");

for(j=p;j=1;j--){g=a[j]+n,n=floor(g/r),a[j]=g-r*n;}

for(j=1;jp;j++) printf("%10.0f ",a[j]);

str3=strs1;

}

C语言 圆周率

因为圆面积s=pi*r^2,

所以pi=s/r^2.

点(x,y)是0~1正方形范围内的随机点,如果x^2+y^2=1,则该点在单位圆内.

x^2+y^2就是r^2,即圆半径的平方.d/N为点x,y落入单位圆内的概率,即约为圆面积.

圆的半径为1/2,而不是1,所以pi=4*d/N.

C语言求圆周率

#include stdio.h

int main()

{

float f;

double pi,i,sign;

while(scanf("%f",f)==1)

{

pi=0;

i=1;

sign=1;

do

{

pi+=sign*1.0/i;

}while(1.0/i=f(sign=-sign)(i+=2));

printf("%lf\n",pi*4.0);

}

return 0;

}

C语言/C++用投针法计算圆周率

代码如下:

#include iostream 

#include fstream

#include math.h

using namespace std;

double randx,randnum;

unsigned long randi=1;

const unsigned long randa=16807;

unsigned long randm=pow(2,31)-1;

const double pi=3.1415926;

// random number creation

void random_number()

{

if ( randi == randm )

{

randi=randm-1;

}

randi=(randa*randi)%randm;

randx=randi;

randnum=randx/randm;

return ;

}

// program main

void main(void)

{

FILE *fp9;

fp9=fopen("mypi.dat","w+");

double jianju;

double zhenchang;

double minjuli;

double hudu;

double shiyanpi; 

int cishu;

int i;

int j=0;

cout"请输入投针次数""\n";

cincishu;

cout"请输入平行线间距""\n";

cinjianju;

cout"请输入针的长度""\n";

cinzhenchang;

for (i=1;i=cishu;i++)

{

random_number();

minjuli=randnum*jianju/2;

random_number();

hudu=randnum*pi;

if(minjuli=zhenchang/2*sin(hudu))

j++;

shiyanpi=2*zhenchang*i/(jianju*j);

if(i%1000==0)

fprintf(fp9,"%d%15.6f   \n",i,shiyanpi);

}

}

希望能帮到你!望采纳!


当前文章:求圆周率的函数C语言指针 c语言中计算圆周率的值
当前地址:http://cdkjz.cn/article/doosdee.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220