在开始加上#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)
用pow()函数
如:
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void main()
{
printf("10^20=%f",pow(10.,20.))
getchar()
}
基本性质
(1) 指数函数的定义域为R,这里的前提是a大于0且不等于1。对于a不大于0的情况,则必然使得函数的定义域不连续,因此我们不予考虑,同时a等于0函数无意义一般也不考虑。
(2) 指数函数的值域为(0, +∞)。
(3) 函数图形都是上凹的。
(4) a>1时,则指数函数单调递增;若0单调递减的。
以上内容参考:百度百科-指数函数
C语言中的POW函数使用:
#include<stdio.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==0&&b>0){
return0
}
elseif(a==0&&b<=0){
return1/0
}
elseif(a<0&&!(b-(int)b<0.0001||(b-(int)b>0.999))){
return1/0
}
if(a<=2&&a>=0){
doublet=a-1
doubleanswer=1
for(inti=1i<ACCURACYi++){
answer=answer+func1(t,i)*func2(b,i)
}
returnanswer
}
elseif(a>2){
inttime=0
while(a>2){
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=0i<ni++){
answer=answer*t
}
returnanswer
}
doublefunc2(doubleb,intn){
doubleanswer=1
for(inti=1i<=ni++){
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)