[英]Function to calculate Pi in C
我正在嘗試編寫一個公式,其中用戶輸入一個數字n
來使用Pi= n^2/(n-1)(n+1)計算Pi
。 但由於某種原因,輸出是錯誤的。 我不知道是我的數學錯了還是函數有問題。
這是代碼:
#include <stdio.h>
#include <math.h>
double pi_array (int n)
{
int i;
double a;
if (n%2==0)
{
for (i=2;i<=n;i+=2)
{
a=pow(n,2)/((n-1)*(n+1));
}
}
return a;
}
double pi_value (int n)
{
int i;
double pi;
for (i=0;i<=n;i++)
{
pi=pi_array(n);
}
return pi;
}
void main()
{
int n;
scanf("%d",&n);
printf ("%lf\n", pi_value(n));
}
就像@Mat 指出的那樣,在這部分代碼中:
for (i=2;i<=n;i+=2)
{
a=pow(n,2)/((n-1)*(n+1));
}
它一次又一次地進行相同的計算,因為n
不會改變它的值。 即使對於所有迭代pow(n,2)/((n-1)*(n+1))
答案pow(n,2)/((n-1)*(n+1))
保持不變。
另外,附帶說明一下,您使用什么公式來計算答案? 如果你把n = 4
,你得到的值為 16/15,等於 1.0667。 對於n = 5
,答案是 1.041667。 它們顯然不等於pi
。 我認為這個公式本身可能是錯誤的。 您可以在MathStackExchange上發布有關公式的問題,以了解確切的公式是什么,然后稍后在 C 中實現它:)。
最好的事物。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.