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喔!!

.

本篇教學就到此結束啦!

文章分類:C & C++|標籤:, ,

迴響已關閉