/*
题目描述
编写程序,输入一个正整数n,求下列算式的值。要求定义和调用函数fact(k)计算k的阶乘。
1+1/2!+ .... +1/n!
计算结果保存在double类型变量中。
接口说明
原型:
void GetResult(int InputNum, double *NumResult);
输入参数:
Int InputNum:输入一个正整数,进行表达式计算
char *NumResult:输出表达式的值
返回值:
void
*/
/*
void GetResult(int InputNum, double *NumResult);
输入参数:
Int InputNum:输入一个正整数,进行表达式计算
char *NumResult:输出表达式的值
返回值:
void
*/
#include <stdio.h>
double fact(int k);
void GetResult(int InputNum, double *NumResult)
{
if(InputNum)
{
for(int i=1;i<=InputNum;i++)
{
*NumResult+=(double)1.0/fact(i);
}
}
printf("%f",*NumResult);
return ;
}
/*
double fact(int k)
输入参数:
Int k:输入一个正整数,进行表达式计算
返回值:
double
*/
double fact(int k)
{
double sum=1;
if(k==0)
{
return sum;
}
sum=k*fact(k-1);
return sum;
}
void main()
{
int n;
double output = 0;
printf("请输入你要的数字:\n");
scanf_s("%d",&n,10);
GetResult(n,&output);
getchar();
getchar();
}