用c语言编写e的n次方(函数方法),各位大神帮我看看哪里错了!!!谢谢哈!!!

2024-12-15 17:57:18
推荐回答(3个)
回答1:

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放外面
}

回答2:

逻辑错误

显然你求的不是e的n次方

回答3:

语法错误在pow函数的调用,那个函数第一个参数不接受整型,可以强制转换,像下面这样用
k+=pow((double)n,i);