#include<stdio.h> doublefactorial(int n);//计算阶乘 intmain() { 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); } doublefactorial(int n)//计算阶乘 { double result = 1; int i = 0; for (i = 1; i <= n; i++) { result = result * i; } return result; }