1.2.2 整數運算
【例1-4】把20支鉛筆平均分給8位學生,每人分得幾支,還剩幾支?
編寫一個程序,完成計算。每個人分幾支,需要做除法運算,剩下幾支通過求余數可以得到。
#include <iostream> using namespace std; int main() { cout << 20 / 8 << endl; cout << 20 % 8 << endl; return 0; }
運行結果如下:
2 4
程序中出現了兩個運算符“/”和“%”,分別表示除法運算和模運算。C++語言常用的運算符如表1-2所示。
表1-2 C++語言常用的運算符

需要注意的是,運算結果的數據類型和參加運算的數據類型相關,如果兩個整數進行除法運算,其結果同樣也是整數。
所以,第1行輸出的2是20/8的數學運算結果2.5的整數部分。第2行輸出的4是整除后的余數。
程序中的cout是C++語言的輸出語句,這個輸出的目標就是系統默認的輸出設備(屏幕)。
程序中的endl的作用是換行,英語的含義是end of line。
注意
endl的最后一個字母是單詞line的第一個字母l。
程序在輸出內容時,按如下原則處理:雙引號包含的字符串,原樣輸出;計算表達式,先計算再輸出結果。
要注意cout和輸出內容之間的符號“<<”,在輸出多個內容時,可以連續書寫。
【例1-5】cout語句的連續輸出應用示例。
#include <iostream> using namespace std; int main() { cout << "20 / 8 = " << 20 / 8 << endl; cout << "20 % 8 = " << 20 % 8 << endl; return 0; }
運行結果如下:
20 / 8 = 2 20 % 8 = 4
在計算表達式中,運算符*、/、%的優先級別高于+、?。相同級別的運算符按照從左到右的順序計算。
【例1-6】運算符的優先級別不同。
#include <iostream> using namespace std; int main() { cout << 9 / 8 * 4 << endl; cout << 18 / 3 * 3 << endl; cout << 18 / (3 * 3) << endl; return 0; }
運算結果如下:
4 18 2
第1行,9/8的結果雖然有小數部分,但是取整數部分1作為結果,所以9/8*4的結果是4。
第2行,由于/和*的優先級別相同,所以按照從左到右的順序依次運算。18/3=6,6*3=18。
第3行,由于使用了括號,改變了運算的先后順序,所以先計算3*3,然后計算18/9,結果是2。
運算符的優先級別總結如下。
(1)先算括號內,再算括號外。
(2)乘、除、模(*、/、%)。
(3)加、減(+、?)。
【例1-7】將8000秒表示為小時:分鐘:秒的形式。
【分析】1小時有60分鐘,1分鐘有60秒,所以1小時有60*60=3600秒。8000/3600得到的整數就是對應的小時。8000/3600得到的余數就是分鐘和秒部分,將這個余數除以60,得到的整數就是分鐘數,得到的余數就是剩余的秒數。
按上述分析,編程如下。
#include <iostream> using namespace std; int main() { cout << "8000秒="; cout << 8000 / 3600 << "小時"; cout << 8000 % 3600 / 60 << "分鐘"; cout << 8000 % 3600 % 60 << "秒" << endl; return 0; }
運行結果如下:
8000秒=2小時13分鐘20秒
- Mobile Application Development:JavaScript Frameworks
- 測試驅動開發:入門、實戰與進階
- 小程序實戰視頻課:微信小程序開發全案精講
- 騰訊iOS測試實踐
- 算法精粹:經典計算機科學問題的Java實現
- Vue.js 3.0源碼解析(微課視頻版)
- ADI DSP應用技術集錦
- Mastering Python Networking
- R語言與網絡輿情處理
- Learning jQuery(Fourth Edition)
- Spring Boot實戰
- JBoss:Developer's Guide
- Delphi開發典型模塊大全(修訂版)
- Learning Bootstrap 4(Second Edition)
- HTML并不簡單:Web前端開發精進秘籍