C语言一道题,30分

来源:百度知道 编辑:UC知道 时间:2024/06/27 08:00:01
用下面的公式计算e的x次方。在程序中要求用函数f1计算每项分子的值,用函数f2计算每项分母的值(用递归函数来实现)。通过主函数调用f1和f2完成计算。
e^x=1+ x + (x^2)\2! + (x^3)\3! + …(前10项的和)

#include"stdio.h"
//#include"string.h"
//#include "iostream"
//using namespace std;
void f1(int i,double *a,double x)
{

a[i] = a[i-1]*x;
i++;
if(i<10)
{
f1(i,a,x);
}
}
void f2(int i,double *b)
{
b[i] = b[i-1]*i;
i++;
if(i<10)
{
f2(i,b);
}
}
void main()
{
double a[10];
double b[10];
double x,ans=0;
scanf("%lf",&x);
b[0]=1.0;
a[0]=1.0;
f1(1,a,x);
f2(1,b);
for (int i=0; i<10; i++)
{
ans+=a[i]/b[i];
}
printf("%lf\n",ans);
}