C语言编程 用泰勒展开式计算e^x的值

编写程序,计算e^x=1+x+(x^2)/(2!)+(x^3)/(3!)+(x^4)/(4!)+...+(x^n)/n!说明:e^x表示e的x次方,2!表示2的阶乘输入输... 编写程序,计算
e^x=1+x+(x^2)/(2!)+(x^3)/(3!)+(x^4)/(4!)+...+(x^n)/n!

说明:e^x表示e的x次方,2!表示2的阶乘

输入输出格式要求:
输入格式:x n回车
e^x, x, n均用double类型存储。
要求输出小数点后6位。
只输出运算结果,请不要输出其他字符,遇到异常情况(如n为负数),输出error

上面是题目要求,下面的程序哪里不对?本人初学C语言,恳请大佬指教!!
#include<stdio.h>
#include<math.h>
int main()
{
double x, n,sum;
scanf_s("%lf %lf", &x, &n);
double add(double x, double n);
sum = add(x, n);
if(n<=0||x<=0)
{
printf("error");
}
else { printf("%.6lf", sum); }
return 0;
}
double add(double x,double n)
{
int b = 1, c = 1;
double sum = 1;
for (int i = 1; i <=n; i++)
{
sum = sum +( pow(x, i))/c;
b = b + 1;
c = c*b;
}

return sum;}
When test group(3) step(1),the input is (10.45 20 ),the real output is not right.
When test group(1) step(1),the input is (3 20 ),the real output is not right.
When test group(2) step(1),the input is (0 100 ),time out.
忘了说,这是错误的原因,大佬们能不能看一下这样类似的问题怎么解决呢?非常感谢
展开
 我来答
不睡觉孩子的妈妈
2017-10-13 · TA获得超过135个赞
知道答主
回答量:59
采纳率:100%
帮助的人:51.6万
展开全部

#include<stdio.h>

#include<math.h>

int main()

{

double add(double x, double n);

double x, n,sum;

scanf("%lf %lf", &x, &n);

if(n<0||x<0)

{

printf("error");

return 0;

}

else 

sum = add(x, n);

printf("%.6lf", sum); 

}

return 0;

}

double add(double x,double n)

{

double b = 1, c = 1;

double sum = 1;

for (b = 1; b <=n; b++)

{

sum = sum +( pow(x, b))/c;

b = b + 1;

c = c*b;

}


return sum;

}

你这样做,那个输出错误的结果判断要在计算之前,并且出错后要退出,而且你的异常条件要写成:if(n<0||x<0),因为0是允许的。然后计算和的函数我减去了一个变量,有循环变量就可以替代n了

我的运行结果,但我不知道运算的对不对,程序反正没有错误了,也可以运行的

追问
你的意思是 在报错之前,我那个函数就已经开始运行了是吗?(这个可能是超时的原因。)但是接下来它判断是否错误时,n和x的范围还是对的啊,输出的结果我觉得不应该是错的啊。。为什么运行顺序改了之后差别那么大啊??
还有哦,我把那个i去掉改用d结果就和你一样了。。但是其他结果又不对了,,,好崩溃
sillyfox2000
2020-03-25
知道答主
回答量:1
采纳率:0%
帮助的人:625
展开全部
When test group(3) step(1),the input is (10.45 20 ),the real output is not right.请问下这个怎么解决的呀,我也碰到啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
儿时的石板路
2017-10-13 · 超过22用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:32万
展开全部
这个程序跑起来是报故还是结果不对?
追问
我我我。。我也不知道确切结果,但它报错了,应该是不对,而且有些数据太大,程序跑超时了。。。
追答
能不能传个运行结果的图
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式