① 求用三種方法計算圓周率(C語言)
給你個C程序吧:
#include <stdio.h>
long a=10000,b,c=2800,d,e,f[2801],g;
void main()
{
for(;b-c;)
f[b++]=a/5;
for(;d=0,g=c*2;c-=14,printf("%04d",e+d/a),e=d%a)
for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);
}
PI=3.510597317328160963185...
② 能用C語言或C#語言算圓周率嗎
是的,C 語言和 C# 語言都可以用來計算圓周率。
多邊形法是一種常用的求圓周率的方法,其基本思路是將一個正多邊形內接於單位圓上,通過不斷增加多邊形的邊數,槐斗脊逐漸逼近圓的周長和面積。具體來說,我們可以使用如下的 C 語言或 C# 語言代碼實現:
```c
#include <stdio.h>
#include <math.h>
int main() {
int n = 6; // 初始為六邊形
double side = 1.0; // 正多邊銷老形的邊長
double radius = 1.0; // 單位圓的半徑
double pi = 0.0; // 圓周率的估計值
while (n <= 1048576) { // 增加多邊形的邊數直到達到 2^20
side = 2 * radius * sin(M_PI / n);
radius = sqrt(pow(radius, 2) - pow(side / 2, 2));
pi = n * side / 2; // 計算圓周率的估計值
printf("%d 邊形:%.15f\n", n, pi);
n *= 2;
}
return 0;
}
```
在上述代碼中,我們首先定義了三個變數 `side`、`radius` 和 `pi`,分別鉛滲表示正多邊形的邊長、單位圓的半徑和圓周率的估計值。初始時,我們將正多邊形初始化為一個六邊形,即 `n=6`。然後,我們在一個循環內不斷增加正多邊形的邊數,直到邊數達到 $2^{20}$。在每次循環中,我們使用正多邊形的邊長公式和勾股定理計算出新的正多邊形的邊長和半徑,並根據正多邊形的計算結果計算出圓周率的估計值 `pi`,並輸出結果到控制台中。
需要注意的是,在實際應用中,還需要考慮數值溢出、精度誤差等問題,以確保計算結果的正確性。
③ C語言計算圓周率
#include<stdio.h>
doublefact(intn)
{
doubleres=1.0;
for(inti拆氏改=1;i<=n;i++)
核斗res*=i;
returnres;
}
doublemulti(intn)
{
doubleres=1.0;
for(inti=1;i<=n;i+=2)
res*=旅判i;
returnres;
}
intmain()
{
doublesum=1.0,item=1.0,eps=1e-6;
for(inti=1;item>=eps;i++)
{
item=fact(i)/multi(2*i+1);
sum=sum+item;
}
printf("PI=%0.5lf ",sum*2);
return0;
}
//這樣可以得到3.14159
④ C語言:圓周率的計算
在for循環後加一句: sum -= f;
你多加了最後那個小於epsioon的值。
⑤ 用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]='