十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
指数表示有两种方法:
成都创新互联是一家专业提供祁东企业网站建设,专注与成都网站制作、做网站、H5高端网站建设、小程序制作等业务。10年已为祁东众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
1、使用关键字e,如 5e10表示5*10^10,5e-5表示1*10^(-5)=0.00001。
优点是简单明了,和科学记数法类似;缺点是只能表示10为底的指数。
2、使用指数函数pow。使用范围比e广得多,任意浮点数为底数和指数。
原型为double pow( double x, double y );
头文件:math.h
功能:计算x的y次幂。
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
举例:
#includemath.h
#includestdio.h
int main(){
double x =2.0,y=3.0;
printf("%lfraisedto%lfis%lf\n",x,y,pow(x,y));
return 0;
}
用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) a1时,则指数函数单调递增;若0单调递减的。
以上内容参考:百度百科-指数函数
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);
#include stdio.h
float zhishu(float x,int n)
{
int i;
float sum;
if(n0)return 0;
else
{
for(i=0;i=n;i++)
{ if(i==0)sum=x;
else
sum*=x;
}
return sum;
}
}
void main()
{
int n;
float x;
puts("请输入底数x和指数n,中间以回车隔开");
scanf("%f",x);
scanf("%d",n);
printf("%f",zhishu(x,n));
}我运行过了,结果行.不过我只写出指数是正整数的.负整数的也是同样的道理.你自己写吧