f1()中,
double k=0;//k要初始化
楼主x是什么意思?
你好象要这样:
#include
#include
int f1(int n,int x);
int f2(int x);
double f3(int x,int n);
void main()
{
int x,n;
double k;
printf("请输入n和x的值\n");
scanf("%d,%d",&n,&x);
k=f3(n,x);
printf("e的n次方为:%f\n",k);
}
int f1(int n,int x)
{
double k=0;//k要初始化啊!
int i;
for(i=0;i<=x;i++)
{
k+=pow(n,i);
}
return (k);
}
int f2(int x)
{
int i,f=1;
for(i=1;i<=x;i++)
f*=i;
return (f);
}
double f3(int n,int x)
{
int i;
double k=0;
for(i=0;i<=x;i++)
{
k+=(double)f1(n,i)/f2(i);
}
return (k);//return放外面
}
逻辑错误
显然你求的不是e的n次方
语法错误在pow函数的调用,那个函数第一个参数不接受整型,可以强制转换,像下面这样用
k+=pow((double)n,i);