导航:首页 > 软件知识 > 如何编一个计算圆周率的程序

如何编一个计算圆周率的程序

发布时间:2022-12-23 15:09:10

Ⅰ 用C语言编一个计算圆周率的程序,用户输入指定位数,并计算到指定位数(精度不够可以用整数)

#include "stdio.h"

#include <stdlib.h>

#include <string.h>

int main(int argc,char *argv[]){

int a,b,c,d,e,f[2801],g,i,n;

char pi[801]="",t[5]="";

for(a=10000,b=0,c=2800;b-c;f[b++]=2000);//a/5

for(i=e=0;d=0,g=c*2;c-=14,e=d%a){

for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);

n=e+d/a,t[0]=t[1]=t[2]=t[3]='';

n<10 ? t[0]=t[1]=t[2]='0',i=3 : n<100 ? t[0]=t[1]='0',i=2 : n<1000 ? t[0]='0',i=1 : i=0;

itoa(n,t+i,10);

strcat(pi,t);

}

printf("Please enter the length n(int 0<n<800)... n=");

if(scanf("%d",&n)!=1 || n<1 || n>800){

printf("Input error, exit... ");

return 0;

}

for(i=0;i<n;printf("%c",pi[i++]));

printf(" ");

return 0;

}

代码格式和运行样例图片:

Ⅱ 用C语言写出计算圆周率的程序

double s = 0;//面积
double pi = 0;//圆周率
double d=200;//直径(值越大圆周率越精确)
double r = d/2;//半径
for(int i=1;i<=d;i++){
for(int j=1;j<=d;j++){
if((i-r)*(i-r)+(j-r)*(j-r)<=r*r){
s++;
}
}
}
pi = s/(r*r);

Ⅲ 计算圆周率的C语言程序

#include <stdio.h>
#define L 10000 //求10000位PI值
#define N L/4+1

// L 为位数,N是array长度

/*圆周率后的小数位数是无止境的,如何使用电脑来计算这无止境的小数是一些数学家与程式设计师所感兴趣的,在这边介绍一个公式配合 大数运算,可以计算指定位数的圆周率。

John Wallis的圆周率公式:
//详细看网站介绍:https://ke..com/item/%E5%9C%86%E5%91%A8%E7%8E%87/139930?fr=aladdin
PI = [16/5 - 16 / (3*53) + 16 / (5*55) - 16 / (7*57) + ......] - [4/239 - 4/(3*2393) + 4/(5*2395) - 4/(7*2397) + ......]

*/
void add ( int*, int*, int* );
void sub ( int*, int*, int* );
void div ( int*, int, int* );

int main ( void )
{
int s[N+3] = {0};
int w[N+3] = {0};
int v[N+3] = {0};
int q[N+3] = {0};
int n = ( int ) ( L/1.39793 + 1 );
int k;

w[0] = 16*5;
v[0] = 4*239;

for ( k = 1; k <= n; k++ )
{
// 套用公式
div ( w, 25, w );
div ( v, 239, v );
div ( v, 239, v );
sub ( w, v, q );
div ( q, 2*k-1, q );

if ( k%2 ) // 奇数项
add ( s, q, s );
else // 偶数项
sub ( s, q, s );
}

printf ( "%d.", s[0] );
for ( k = 1; k < N; k++ )
printf ( "%04d", s[k] );
printf ( "\n" );
return 0;
}

void add ( int *a, int *b, int *c )
{
int i, carry = 0;

for ( i = N+1; i >= 0; i-- )
{
c[i] = a[i] + b[i] + carry;
if ( c[i] < 10000 )
carry = 0;
else // 进位
{
c[i] = c[i] - 10000;
carry = 1;
}
}
}

void sub ( int *a, int *b, int *c )
{
int i, borrow = 0;
for ( i = N+1; i >= 0; i-- )
{
c[i] = a[i] - b[i] - borrow;
if ( c[i] >= 0 )
borrow = 0;
else // 借位
{
c[i] = c[i] + 10000;
borrow = 1;
}
}
}

void div ( int *a, int b, int *c ) // b 为除数
{
int i, tmp, remain = 0;
for ( i = 0; i <= N+1; i++ )
{
tmp = a[i] + remain;
c[i] = tmp / b;
remain = ( tmp % b ) * 10000;
}
}

Ⅳ C语言计算圆周率

#include<stdio.h>
#include<math.h>
intmain(){
doublep=0,q=0;
inti;
for(i=1;;i++){
p+=6*1.0/(i*i);
q+=4*1.0*pow(-1,i+1)/(2*i-1);//q后面少一个+
if(fabs(sqrt(p)-q)<1e-6)
break;
}
printf("PIis%lf,项数为%d",q,i);
return0;
}

Ⅳ 用C语言编写一个求圆周率的程序

#include<stdio.h>
main()
{ float s,r,PI;
clrscr();
printf("input周长 s");
scanf("%f",&s);
printf("input半径 r");
scanf("%f",&r);
PI=s/(2*r);
pringf("周长=%f,半径=%f\n圆周率PI=%f",s,r,PI);

}

阅读全文

与如何编一个计算圆周率的程序相关的资料

热点内容
禁用驱动程序强制签名怎么启用 浏览:780
自动同步数据的数据在哪里 浏览:504
公司机票代理怎么赚钱 浏览:806
瑞精密技术有限公司怎么样 浏览:295
投标代理公司什么责任 浏览:942
反馈信息能保持多久 浏览:93
2050职业技术类院校如何报名 浏览:15
端面切槽程序怎么编 浏览:867
谷歌地球有多少数据 浏览:293
相亲怎么发信息说对方忙 浏览:659
期货最短交易时间是多少秒 浏览:389
为什么要用U交易 浏览:258
手机不能进行数据迁移怎么办 浏览:109
钱易收代理一个月多少钱 浏览:329
小程序点菜一直待支付会怎么样 浏览:138
公务员和交易员哪个要求高 浏览:325
手机二手市场怎么入门 浏览:218
微信小程序怎么切入电商 浏览:484
求推荐饮品技术加盟费用多少 浏览:679
怎么查乳制品行业数据 浏览:175