第二题怎么做啊 100

 我来答
老冯文库
2017-06-25 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部
在C程序设计语言中,math.h中提供了double exp(double x)用于求以e为底的x次方值。

C语言程序:
#include <stdio.h>
#include <math.h>

void main()
{
double x, y;

printf("x = ");
scanf("%lf", &x);

if(x > 0)
{
y = exp(-x);
}
else if(x < 0)
{
y = -1 * exp(x);
}
else
{
y = 1;
}

printf("y = %lf\n", y);
}
知行合一且止于至善
2017-06-25 · TA获得超过155个赞
知道小有建树答主
回答量:174
采纳率:74%
帮助的人:44.5万
展开全部
这道题最主要的是如何求e的x次方。原理是泰勒展开式,别问我怎么出来的,这是数学家推出来的,我们就能看懂就行。 把e^x在x=0自展开得
f(x)=e^x= f(0)+ f′(0)x+ f″(0)x ²/ 2!+...+ fⁿ(0)x^n/n!+Rn(x)
=1+x+x^2/2!+x^3/3!+...+x^n/n!+Rn(x)
写一个子函数,它可以递归实现加和,每次要做的就是计算x的n次方除以n的阶乘。返回计算结果和x的(n+1)次方除以n加一的阶乘。直到 x^n/n!的值小于1e-7就是小于10的-7次方,就可以不再往后加,只返回数值。函数要有两个参数,一个x,一个n,都是双精度吧,毕竟用了除法,然后,你看着办!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2017-06-25 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6514万
展开全部
#include "stdio.h"
#include "math.h"
int main(int argc,char *argv[]){
double x,e=2.7182818284590452;
printf("Input x(R:)...\nx=");
scanf("%lf",&x);
printf("y = %g\n",x>0 ? pow(e,-x) : x<0 ? pow(-e,x) : 1.0);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式