天天看點

c語言函數已知底數和幂求指數,用C語言求幂函數和指數函數的方法

C語言pow()函數:求x的y次方(次幂)頭檔案:

#include

pow() 函數用來求 x 的 y 次幂(次方),其原型為:

double pow(double x, double y);

pow()用來計算以x 為底的 y 次方值,然後将結果傳回。設傳回值為 ret,則 ret = xy。

可能導緻錯誤的情況:

如果底數 x 為負數并且指數 y 不是整數,将會導緻 domain error 錯誤。

如果底數 x 和指數 y 都是 0,可能會導緻 domain error 錯誤,也可能沒有;這跟庫的實作有關。

如果底數 x 是 0,指數 y 是負數,可能會導緻 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實作有關。

如果傳回值 ret 太大或者太小,将會導緻 range error 錯誤。

錯誤代碼:

如果發生 domain error 錯誤,那麼全局變量 errno 将被設定為  EDOM;

如果發生 pole error 或 range error 錯誤,那麼全局變量 errno 将被設定為 ERANGE。

注意,使用 GCC 編譯時請加入-lm。

【執行個體】請看下面的代碼。

#include

#include

int main ()

{

printf ("7 ^ 3 = %f\n", pow (7.0, 3.0) );

printf ("4.73 ^ 12 = %f\n", pow (4.73, 12.0) );

printf ("32.01 ^ 1.54 = %f\n", pow (32.01, 1.54) );

return 0;

}

輸出結果:

7 ^ 3 = 343.000000

4.73 ^ 12 = 125410439.217423

32.01 ^ 1.54 = 208.036691

C語言sqrt()函數:求給定值的平方根頭檔案:

#include

sqrt() 用來求給定值的平方根,其原型為:

double sqrt(double x);

【參數】x 為要計算平方根的值。

如果 x < 0,将會導緻 domain error 錯誤,并把全局變量 errno 的值為設定為 EDOM。

【傳回值】傳回 x 平方根。

注意,使用 GCC 編譯時請加入-lm。

【執行個體計算200 的平方根值。】

#include

main(){

double root;

root = sqrt(200);

printf("answer is %f\n", root);

}

輸出結果:

answer is 14.142136

時間: 2015-08-24