重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
成都创新互联公司是一家企业级云计算解决方案提供商,超15年IDC数据中心运营经验。主营GPU显卡服务器,站群服务器,成都移动云计算中心,海外高防服务器,机柜大带宽租用·托管,动态拨号VPS,海外云手机,海外云服务器,海外服务器租用托管等。
#include math.h
double exp(double x) {
double sum = 0;
double term = 1;
double index = 1;
while (fabs(term) = 1e-6) {
sum = sum + term;
term = term * x / index;
index = index + 1;
}
return sum;
}
int main() {
char c;
double x;
while (scanf(" %c", c) == 1) {
if (c == '#') break;
ungetc(c, stdin);
scanf("%lf", x);
printf("e(%.3lf) = %.5lf\n", x, exp(x));
}
}
在开始加上#include math.h;
程序中就可以调用pow(x,y)。
main()
{
double z;
z=pow(10,5);
printf("%lf/n",z);
}
输出结果:
285.000000
扩展资料
c语言求自然对数的底e的指数,可以使用函数exp().
exp()的头文件:#include
exp()的函数原型:double exp(double x);
exp()函数的作用:返回e的x次方。
exp()的相关函数:float expf(float x);
long double expl(long double x);
注:自然对数的底e叫做: 欧拉数(eula's number)
C语言中的POW函数使用:
#includestdio.h
#defineACCURACY100
doublefunc1(doublet,intn);
doublefunc2(doubleb,intn);
doublepow2(doublea,doubleb);
intmain(){
printf("%lf",pow2(5.21,4.11));
return0;
}
doublepow2(doublea,doubleb){
if(a==0b0){
return0;
}
elseif(a==0b=0){
return1/0;
}
elseif(a0!(b-(int)b0.0001||(b-(int)b0.999))){
return1/0;
}
if(a=2a=0){
doublet=a-1;
doubleanswer=1;
for(inti=1;iACCURACY;i++){
answer=answer+func1(t,i)*func2(b,i);
}
returnanswer;
}
elseif(a2){
inttime=0;
while(a2){
a=a/2;
time++;
}
returnpow2(a,b)*pow2(2,b*time);
}
else{
if((int)b%2==0){
returnpow2(-a,b);
}
else{
return-pow2(-a,b);
}
}
}
doublefunc1(doublet,intn){
doubleanswer=1;
for(inti=0;in;i++){
answer=answer*t;
}
returnanswer;
}
doublefunc2(doubleb,intn){
doubleanswer=1;
for(inti=1;i=n;i++){
answer=answer*(b-i+1)/i;
}
returnanswer;
}
扩展资料
C++提供以下几种pow函数的重载形式:
doublepow(doubleX,intY);
floatpow(floatX,floatY);
floatpow(floatX,intY);
longdoublepow(longdoubleX,longdoubleY);
longdoublepow(longdoubleX,intY);
使用的时候应合理设置参数类型,避免有多个“pow”实例与参数列表相匹配的情况。
其中较容易发生重载的是使用形如:
intX,Y;
intnum=pow(X,Y);
这是一个比较常用的函数,但是编译器会提醒有多个“pow”实例与参数列表相匹配。
可以使用强制类型转换解决这个问题:num=pow((float)X,Y);