C++與演算法

除法 /

問題思考 - 誰對誰錯?

洛克老師請幾位同學上台寫 7除以3 是多少

  • 同學一寫 7/3 = 2 ... 1
  • 同學二寫 7/3 = 2.33
  • 同學三就只寫 7/3

請問誰的寫法才是正確的?

想好以後往下捲。

全部都對,只是狀況不同

生活中根據應用狀況的不同,同一個問題本來就會有不同的答案。

在C++的世界中也是如此,C++有不同的寫法對應每一種除法的狀況。



語法一 - 取商到整數位的除法

  • 被除數、除數都是整數,結果也會是整數。

code

#include<iostream>
using namespace std;

int main()
{
    cout << 7/3 << endl;
    return 0;
}

output

2



語法二 - 精確到小數的除法

  • 被除數、除數至少一個是小數,結果也會是小數。

code

#include<iostream>
using namespace std;

int main()
{
    cout << 7.0/3 << endl;
    cout << 7/3.0 << endl;
    return 0;
}

output

2.33333
2.33333



語法三 - 輸出文字,沒有任何運算

  • 請參考 3.2基本架構與輸出

code

#include<iostream>
using namespace std;

int main()
{
    cout << "7/3" << endl;
    return 0;
}

output

7/3