double pow(double x, double y);
pow()用來計算以x 為底的 y 次方值,然後將結果返回
可能導致錯誤的情況:
如果底數 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
intmain()
{ 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));
return0;}
輸出結果:
7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691
double pow(double x, double y);
pow()用來計算以x 為底的 y 次方值,然後將結果返回
可能導致錯誤的情況:
如果底數 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
intmain()
{ 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));
return0;}
輸出結果:
7 ^ 3 = 343.000000
4.73 ^ 12 = 125410439.217423
32.01 ^ 1.54 = 208.036691