永发信息网

C语言看一下有哪些错误,无法出现计算结果

答案:3  悬赏:50  手机版
解决时间 2021-03-18 00:19
  • 提问者网友:佞臣
  • 2021-03-17 10:53
#include
#define MAX 100000

double factorial(double a)
{
double ans=1;
int i;
for(i=1;i<=(int)a;++i)ans*=i;
return ans;
}
double pow(double a,double k)
{
double ans=1;
int i;
for(i=1;i<=k;++i)ans*=a;
return ans;
}

double exp(double a)
{int terms;
double sum=0;
int i;
for(i=1;isum+=pow(a,i)/factorial(i);
return sum;}

main()
{ int terms;
double X;
printf("Enter the number of terms (for accuracy)\n");
scanf("%i",&terms);
printf("Enter the value for x\n");
scanf("%lf",&X);
printf("exp(x)= e^x= 1+x+x^2/2!+x^3/3!...\n");
printf("exp(%.14lf)= %.14lf\n",X,exp(X));

return 0;
}
最后那个printf不显示

有没有人啊,棒棒忙啊,烦了一天了
最佳答案
  • 五星知识达人网友:野味小生
  • 2021-03-17 12:23
double exp(double a)这个函数严重错误——terms还没有赋值,却在下面的表达式for(i=1;i double exp(double a,int terms){
double sum=0;
int i;
for(i=1;i sum+=pow(a,i)/factorial(i);
return sum;
}
再把主函数中对exp的调用改成exp(X,terms)。
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-03-17 13:33
因为printf()函数,不支持输出exp(X)这样的格式,你必须先double一个变量,然后将exp(X)赋给这个值,最后输出变量,具体为 double exp; exp=exp(X); printf("exp(%.14lf)=%.14lf\n",X,exp);
  • 2楼网友:狂恋
  • 2021-03-17 12:38
输出语句printf中,s也括到""里面去了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯