魅力无限你宝哥 发表于 2018-11-10 19:08:48

请问这个求e的x次方的代码哪里错了?输出都是0.000000

#include<stdio.h>
#include<math.h>
double powers(double,int);
double sum(double);
double jiecheng(int);
int main()
{
        double x,s;
        printf("需要求e的几次方?\n");
        scanf("%lf",&x);
        double sum(double x);
        printf("e的%lf次方是:%lf",x,s);
        return 0;
}
double sum(double x)
{
        double powers(double x,int n);
        double jiecheng(int n);
        int n=0;
        double s=0;
        while(fabs(powers(x,n)/jiecheng(n)>1e-6) )
        {
        s=s+(powers(x,n)/jiecheng(n));
             n++;
        }
return s;
}
double powers(double x,int n)
{
        int i;
        double p=1.0;
        for(i=1; i<=n; i++)
                p*=x;
        return p;
}
double jiecheng(int n)
{
        int i,j=1;
        for(i=1; i<=n; i++)
                j*=i;
        return j;
}

仰望天上的光 发表于 2018-11-10 20:01:02

int main()
{
      double x,s;
      printf("需要求e的几次方?\n");
      scanf("%lf",&x);
      double sum(double x);
      printf("e的%lf次方是:%lf",x,s);
      return 0;
}
主函数中的
double sum(double x);

只是在声明函数sum,并没有调用该函数,所以无论该函数是怎么实现的都没有意义。

魅力无限你宝哥 发表于 2018-11-10 20:06:33

仰望天上的光 发表于 2018-11-10 20:01
主函数中的
double sum(double x);



那应该怎么改啊-,-

仰望天上的光 发表于 2018-11-10 20:08:37

main函数中的
double sum(double x);改为
sum(x);

魅力无限你宝哥 发表于 2018-11-10 20:34:37

仰望天上的光 发表于 2018-11-10 20:08
main函数中的
double sum(double x);改为
sum(x);

不行。。。还是显示0.000000

仰望天上的光 发表于 2018-11-10 20:38:05

改为
s = sum(x);

魅力无限你宝哥 发表于 2018-11-10 20:48:22

仰望天上的光 发表于 2018-11-10 20:38
改为
s = sum(x);

谢谢!
页: [1]
查看完整版本: 请问这个求e的x次方的代码哪里错了?输出都是0.000000