使用C语言计算圆周率

根据下面关系式,求圆周率的值,直到最后一项的值小于给定阈值。
$$
\frac{\pi}{2} = 1 + \frac{1}{3} + \frac{2!}{3 \times 5} + \frac{3!}{3 \times 5 \times 7} + \cdots + \frac{n!}{3 \times 5 \times 7 \times \cdots \times (2n + 1)} + \cdots
$$

输入格式:

输入在一行中给出小于1的阈值。

输出格式:

在一行中输出满足阈值条件的近似圆周率,输出到小数点后6位。

输入样例:

1
0.01

输出样例:

1
3.132157

代码:

1234567891011121314151617181920212223242526272829303132333435363738
#include <stdio.h>double factorial(int n);//计算阶乘int main(){    float threshold = 0;//阈值    float input = 0;//输入    float sum = 0;//结果    float numerator = 0;//分子    float denominator = 1;//分母    scanf("%f",&input);    int i = 1;    do {        int x = 1;        int j = 1;//计算分母循环用        for (j = 1; j<=i;j++)//计算分母        {            denominator = denominator * x;            x = x + 2;        }        numerator = factorial(i-1);//计算分子        threshold = numerator/denominator;//计算阈值(当前的最后一项)        sum = sum + threshold;//计算和        i++;        denominator = 1;    } while (threshold > input);    sum = sum * 2;    printf("%.6f",sum);}double factorial(int n)//计算阶乘{    double result = 1;    int i = 0;    for (i = 1; i <= n; i++)    {        result = result * i;    }    return result;}
🔍 ×