導航:首頁 > 軟體知識 > 如何編一個計算圓周率的程序

如何編一個計算圓周率的程序

發布時間: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);

}

閱讀全文

與如何編一個計算圓周率的程序相關的資料

熱點內容
駕駛證信息表在哪裡列印 瀏覽:232
證券交易的定義原則和流程是什麼 瀏覽:908
微信用什麼小程序做表格 瀏覽:42
如何分辨交易商是正規的 瀏覽:606
數據的維護工作主要包括哪些 瀏覽:202
三元牛奶有哪些產品 瀏覽:787
鼎漢技術虧損多少錢 瀏覽:436
辦案數據密碼是什麼意思 瀏覽:808
肝細胞信息交流方式有哪些 瀏覽:21
花唄商戶如何取消交易 瀏覽:79
體脂秤數據為什麼那麼難看 瀏覽:947
手機如何獲得路由器信息 瀏覽:34
投資幣圈在哪裡交易 瀏覽:427
飛書技術顧問是什麼崗位 瀏覽:924
主播換新號了告訴大哥怎麼發信息 瀏覽:382
怎麼評價廣州期貨交易所 瀏覽:1
股票交易日常怎麼樣 瀏覽:325
拼多多怎麼看排名第一的產品 瀏覽:605
微店代理一開始沒有流量怎麼辦 瀏覽:2
丸碧怎麼代理 瀏覽:521