C++如何開根號及計算冪次
好多人問我「C++怎麼開根號?」
也有很多人問我「C++怎麼做平方?」
為了不要太麻煩,我來寫教學好了
謎之聲:你遲早都要寫的
開根號
開根號其實很簡單,知道方法的話,就算是3歲小孩也寫的出來
我們需要用到<math.h>函式庫中的sqrt函數
格式如下:
sqrt(欲開根號的值,或變數)
例如:
sqrt(9)
這個程式的值就是3
實例應用:寫一個程式可以連續讓使用者輸入資料(包刮浮點數)並顯示開根號的值
題目要我們能讓使用者輸入浮點數,所以宣告變數的話,要用float
如:
float input;
接著,我們要提示使用者輸入什麼數據
如:
cout << “請輸入一正數(小數可),本程式會計算其開根號值:”;
然後再來就要讓使用者輸入變數
如:
cin >> input;
接著輸出時,很簡單,使用者輸入的變數加上sqrt即可
如:
cout << “開根號後的值為:” << sqrt(input) << endl ;
接著在輸入變數的那段程式之前加入一個標籤,並在程式之後,加入goto,變成連續輸入型的程式
寫好後,差不多就完成了,如果要讓錯誤率減到最低,那就加入一些判別吧!
我們知道實數中負數是不能開根號的(會無解)
而程式也一樣喔!
所以,使用者輸入數值後,要判別數值是否大於零,大於零的話再繼續執行程式
綜合以上,所寫出來的程式將如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <math.h> using namespace std; int main() { float input; start: cout << "請輸入一正數(小數可),本程式會計算其開根號值:"; cin >> input; if (input<0) { cout << "勿輸入負數!!" << endl; goto start; } cout << "開根號後的值為:" << sqrt(input) << endl ; goto start; system ("pause"); return 0; } |
變相式寫法
開根號一定要用到特殊函數嗎?
其實不用,用迴圈也可以判別!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <iostream> using namespace std; int main() { int input,a; start: cout << "請輸入一正整數,本程式會計算其開根號值:"; cin >> input; if(input<0) { cout << "請輸入正數!" <<endl; goto start; } for (a=0;a<=input;a++) { if(a*a==input) break; } if(a*a!=input) cout << "此數不是完全平方數!"<< endl ; else cout << "開根號後的值為:" << a << endl ; goto start; system ("pause"); return 0; } |
以上程式,可以看出這個程式只能夠計算完全平方數的開根號值
這就是用簡單迴圈所做出來的開根號計算器,不但功能不強,而且還一大串
所以,還是用sqrt會比較實際
乘冪計算
計算乘冪(指數)其實也很簡單,要用到<math.h>函式庫和pow函數
格式如下:
pow(底數,指數)
例如要計算2的8次方的話,程式如下:
pow(2,8);
其值就為256
實例應用:寫一個程式可以連續讓使用者輸入底數和指數,並算出其值
因為用到pow函數,所以只能使用float來宣告變數
我們設底數為x,指數為y
寫出程式如下:
float x,y;
接著提示使用者輸入什麼的數值(cout)
並讓使用者輸入變數的值(cin)
程式如下:
cout << “請輸入底數:”;
cin >> x;
cout << “請輸入指數:” ;
cin >> y;
接著輸出計算值
如:
cout << “值為:” << pow(x,y) << endl ;
還有,題目要求連續計算,所以照上面方法加入goto吧!
綜合以上,寫出來的程式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <math.h> using namespace std; int main() { float x,y; start: cout << "請輸入底數:"; cin >> x; cout << "請輸入指數:" ; cin >> y; cout << "值為:" << pow(x,y) << endl ; goto start; system ("pause"); return 0; } |
pow也可以做開根號
你有沒有想過,指數如果是0.5的話,那值是多少
答案就是根號底數
例如:
pow(81,0.5)
其值就為9 (81開根號)
所以,pow也可以代替sqrt喔!!
.
本篇教學就到此結束啦!