C語言中pow函數(shù)使用方法、注意事項以及常見報錯原因
1.首先使用pow函數(shù)必須要加頭文件 :
#include<math.h>
pow() 函數(shù)用來求 x 的 y 次冪(次方),x、y及函數(shù)值實際上為double型 ,其在使用中的原型為:double pow(double x, double y);
注意,在某些特定的情況之下,pow函數(shù)的double類型可能會引起輸出結(jié)果的錯誤
2.pow()用來計算以x 為底的 y 次方值,然后將結(jié)果返回。
設(shè)返回值為 ret 則 ret = x^y
基本使用方法如下:
#include<stdio.h> #include<math.h> int main() { int a,b,ret; scanf("%d,%d", &a, &b); ret = pow(a,b); //求出a的b次方 printf("%d", ret); return 0; }
3.注意可能引起報錯的原因
- 底數(shù) a為負數(shù)并且指數(shù) b 不是整數(shù),將會導(dǎo)致 domain error 錯誤.
- 底數(shù) a和指數(shù) b都是 0,會導(dǎo)致 domain error 錯誤.
- 底數(shù) a是 0,指數(shù) b 為負數(shù),會導(dǎo)致 domain error 或 pole error 錯誤.
所以在使用pow函數(shù)時,要注意底數(shù)和指數(shù)數(shù)字的正負,不要違反基本的數(shù)學常識 4.代碼實戰(zhàn) 輸入一個數(shù),想把每位的數(shù)變成0或1。如果某一位是奇數(shù),就把它變成1,如果是偶數(shù),那么就把它變成0。最后得到的數(shù)是多少?
例如:輸入888, 輸出結(jié)果為0
輸入123,結(jié)果為101
#include<stdio.h> #include<math.h> int main() { int a[i], i, k; long long sum, n, c; scanf("%d", &n); while(n) { c = n % 10; n = n / 10; a[k++] = c; } for(i = 0; i < k; i++) { if(c % 2 == 0) { a[i] = 0; } else { a[i] = 1; } sum = sum + a[i] * pow(10, i); } printf("%d", sum); return 0; }
可能導(dǎo)致錯誤的情況:
- 如果底數(shù) x 為負數(shù)并且指數(shù) y 不是整數(shù),將會導(dǎo)致 domain error 錯誤。
- 如果底數(shù) x 和指數(shù) y 都是 0,可能會導(dǎo)致 domain error 錯誤,也可能沒有;這跟庫的實現(xiàn)有關(guān)。
- 如果底數(shù) x 是 0,指數(shù) y 是負數(shù),可能會導(dǎo)致 domain error 或 pole error 錯誤,也可能沒有;這跟庫的實現(xiàn)有關(guān)。
- 如果返回值 z 太大或者太小,將會導(dǎo)致 range error 錯誤。
錯誤代碼:
如果發(fā)生 domain error 錯誤,那么全局變量 errno 將被設(shè)置為 EDOM;
如果發(fā)生 pole error 或 range error 錯誤,那么全局變量 errno 將被設(shè)置為 ERANGE。
Math.pow(底數(shù),幾次方)
如:double a=2.0;
double b=3.0;
double c=Math.pow(a,b);
就是2的三次方是多少;
c最終為8.0;
總結(jié)
到此這篇關(guān)于C語言中pow函數(shù)使用方法、注意事項及常見報錯原因的文章就介紹到這了,更多相關(guān)C語言pow函數(shù)使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++ Custom Control控件向父窗體發(fā)送對應(yīng)的消息
這篇文章主要介紹了C++ Custom Control控件向父窗體發(fā)送對應(yīng)的消息的相關(guān)資料,需要的朋友可以參考下2015-06-06深入C++拷貝構(gòu)造函數(shù)的總結(jié)詳解
本篇文章是對C++中拷貝構(gòu)造函數(shù)進行了總結(jié)與介紹。需要的朋友參考下2013-05-05c++ 結(jié)構(gòu)體內(nèi)存對齊基本概念及示例
這篇文章主要介紹了c++ 結(jié)構(gòu)體內(nèi)存對齊基本概念及示例,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下2020-12-12C++使用boost::lexical_cast進行數(shù)值轉(zhuǎn)換
這篇文章介紹了C++使用boost::lexical_cast進行數(shù)值轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06