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);
输出语句printf中,s也括到""里面去了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯