用C語言實現“計算圓周率”,基礎程式設計由此開始(第十三節)

圓周率,大家都不陌生吧,也就是“Pi”

,用符號π來表示,一般就是數字3。14159265。。。

那這道程式設計題呢,相對於之前學過的程式設計題目而言,難度有所提升。

主要目的就是如文章標題寫的那樣,要計算圓周率。

沒錯,圓周率是可以計算出來的。

打出公式比較複雜,我直接把題目給貼上來好了。

用C語言實現“計算圓周率”,基礎程式設計由此開始(第十三節)

梳理邏輯

這道題目的要求是什麼,是輸入小於1的閾值,然後在一行中輸出滿足閾值條件的近似圓周率,輸出小數點後6位,而近似圓周率滿足公式中的最後一項的值要小於給定的閾值。

比方說給定閾值0.01,那麼計算圓周率的最後一項如果小於0.01,就到此為止,然後把該圓周率的值給打印出來。

1、輸入小於1的閾值,那顯然是要用到float浮點型來表示輸入閾值的資料型別了。

2、關鍵難度在於如何得到最後一項,以及如何得到pi的值。

我們可以仔細觀察,

最後一項其實是由n的階乘去除以所有奇數的乘積。

n的階乘我之前講過,就是從第一個數開始乘起乘到最後一個數。

而所有奇數的乘積也相對簡單,就是從第一個奇數開始乘起乘到最後一個奇數。

用C語言實現“計算圓周率”,基礎程式設計由此開始(第十三節)

3、保留小數點後六位,那就是要用到%0。6f來表示了。

程式碼實現

//計算圓周率#includeint main(){ float n; float m=1;//n! float q=1; float pi=1; float w=0; scanf(“%f”, &n);//閾值 int i = 1; for(w = 1; w >= n;i++){ q = q*(2*i+1); m = m*i; w = m/q; pi = pi + w; } printf(“%0。6f”,2*pi);}

可以發現,這裡只需要用到一個for迴圈即可,至於求n的階乘與所有奇數的乘積,相對來說也是比較簡單的,就是用數值本身去乘以相應的公式即可。

結果測試

用C語言實現“計算圓周率”,基礎程式設計由此開始(第十三節)

用C語言實現“計算圓周率”,基礎程式設計由此開始(第十三節)

總結

總的來說,這道題目並沒有想象中的那麼難,關鍵還是題目的邏輯要盤清楚,否則就會像我最開始做題時犯的錯誤一樣,容易出現問題。