① 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