power在C語言中沒有特別的含義,既不是關(guān)鍵字也不是庫函數(shù)的函數(shù)名。
成都創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新田企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站設(shè)計,新田網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
可能是編程人員自定義的一個變量名或函數(shù)名。
舉例如下:
int?power;?????????//?定義一個int類型的變量,變量名為power
double?power;??//?定義一個double類型的變量,變量名為power
int?power(int?a,?int?b)??//?//?自定義一個函數(shù),函數(shù)名為power
{
return?a+b;
}
C語言中只有pow庫函數(shù),沒有power庫函數(shù)。
函數(shù)原型:double pow(double x, double y);
功 ? ? ? 能:計算x^y
返 回 ?值:計算結(jié)果
如:
double?x?=?2,?y;
y?=?pow(3.14,?x);?//?計算3.14的平方
兩個問題:
一個是power內(nèi)的,既然用了嵌套就不需要用循環(huán),用了循環(huán)就不用嵌套。
二是輸入的格式,m是double,那么格式要用%lf,而不是%f,否則不能正確獲得輸入值。
另外,按照原程序中scanf的寫法,輸入時一定要以“,”分隔兩數(shù)(不能以空格分隔),比如:5,2。
程序修改如下(都沒考慮0的0次方這種情況):
#include stdio.h
double power(double x,int n)
{ //int a;
//for(a=1;a=n;a++) 用遞歸就不需要循環(huán)
if(n==0) return 1;//0次方
else return x*power(x,n-1);//遞歸為x*x的n-1次方
// printf("%f",power(x,n));不用輸出了,否則又調(diào)用一次power
}
/* 如果要用循環(huán),可以用下面這段程序
double power(double x,int n)
{
double x_n = 1;
while(n--) x_n *= x;
return x_n;
}*/
int main()
{
double m;
int b;
scanf("%lf,%d",m,b);//m是double,所以要用%lf,而不是%f;輸入時以“,”分隔兩數(shù)
printf("%f", power(m,b));
}
C語言中計算指數(shù)函數(shù)使用pow,不是power,兩個參數(shù)都是double類型的,第一個是底數(shù),第二個是指數(shù)。例如pow(3,0.5)表示3的0.5次方,就是3開平方。
pow()函數(shù)用來求x的y次冪,x、y及函數(shù)值都是double型 ,其原型為:double pow(double x, double y)。
實例代碼如下:
#includestdio.h
#includemath.h
void main()
{
double x = 2, y = 10;
printf("%f\n",pow(x, y));
return 0;
}
擴展資料:
C++提供以下幾種pow函數(shù)的重載形式:
double pow(double X,int Y);
float pow(float X,float Y);
float pow(float X,int Y);
long double pow(long double X,long double Y);
long double pow(long double X,int Y);
使用的時候應(yīng)合理設(shè)置參數(shù)類型,避免有多個“pow”實例與參數(shù)列表相匹配的情況。
其中較容易發(fā)生重載的是使用形如:
int X,Y;
int num=pow(X,Y);
這是一個比較常用的函數(shù),但是編譯器會提醒有多個“pow”實例與參數(shù)列表相匹配。
可以使用強制類型轉(zhuǎn)換解決這個問題:num=pow((float)X,Y)。
參考資料來源:百度百科-POW
power(int x ,int N) // 求x的N次方
{
int i,xsum=1;
for(i=N;i0;i--)
{
xsum=xsum*x;
}
return xsum;】
完整代碼如下:
#include?stdio.h
unsigned?int?power(unsigned?int?base,?unsigned?int?k=2)
{
unsigned?int?ans?=?1,?i;
for?(i?=?0;?i??k;?++i){
ans?*=?base;
}
return?ans;
}
int?main()
{
printf?("%u,",?power(2));
printf?("%u,",?power(2,?0));
printf?("%u,",?power(2,?1));
printf?("%u,",?power(2,?2));
printf?("%u,",?power(2,?3));
printf?("%u,",?power(2,?4));
printf?("%u,",?power(3));
printf?("%u,",?power(3,?3));
printf?("%u,",?power(3,?4));
return?0;
}