語法書 / AA 競程語法書 上冊 / 第一單元 / 讀入與計算:A+B

1.3 讀入與計算:A+B

上一節你已經會讓程式「印出固定的內容」了。但真正有用的程式,多半要先讀入一些資料、算一算,再把答案印出來。這一節用最小的例子 A+B(讀進兩個數字、相加、印出)來認識「輸入」。框架(#includeusing namespace std;int main()return 0;)跟上一節一模一樣,只多了「讀入」和「計算」兩件事:

#include <iostream>
using namespace std;

int main() {
    int a, b;
    cin >> a >> b;
    int sum = a + b;
    cout << sum << endl;
    return 0;
}

執行流程:

(程式執行)
(等待你輸入...)
5 3
(電腦計算 5 + 3 = 8)
8
(程式結束)

一樣先別急著理解每一行——先讓它跑起來! 親手把兩個數字相加、看到答案蹦出來,後面再回頭讀解說會更有感覺:

  1. 把上面的 A+B 程式碼貼進線上編輯器(一樣記得 Language 選 C++17
  2. 這支程式要讀入兩個數字,怎麼把 5 3 餵給它,看你用哪個編輯器:
    • AACPOJ 的 IDE在右側「標準輸入(stdin)」欄位把 5 3 打好,按左上角綠色的 執行 鈕(或快捷鍵 CtrlCmd + Shift + Enter
    • OnlineGDB:先按 Run,程式會停下來等你打字(游標在閃就是在等你),這時才在下方視窗輸入 5 3 按 Enter
  3. 看看下方是不是印出「8」

跑出來了嗎?你剛剛讓程式完成了「讀入資料 → 計算 → 印出答案」一整輪!(想玩玩看的話,把輸入的數字換成別的、或回上一節把 Hello World 的文字改一改,再執行一次。)接下來我們就一行一行來看它在做什麼。

逐行解說:(開頭的 #includeusing namespace std;int main() 和結尾的 return 0; 就是上一節講過的框架)

  • int a, b;宣告兩個整數變數 a 和 b。「宣告」就是先告訴電腦「我要用兩個叫 ab 的盒子來裝整數」,這樣之後才能把值放進去、再拿出來用。而變數就是這種有名字的盒子(int 表示盒子裝的是整數)
  • cin >> a >> b; — 從鍵盤讀入數字到 a 和 b(cin 這名字取自 character input,「字元輸入」之意)
    • 你可以輸入「5 3」(用空格分隔),或先打 5 按 Enter 再打 3(用換行分隔)都可以
  • int sum = a + b; — 計算 a + b,並立即存入新變數 sum
  • cout << sum << endl; — 印出 sum 的值

換你了——動手 AC 練習! 學會 cin 之後,你已經能寫「讀進資料 → 算一算 → 印出答案」的程式了。下面〈相關練習〉的題目都只需要用到加法(+,跟上面的 A+B 一模一樣:用 cin >> 把數字讀進變數、相加後再 cout << 印出來。一樣記得先在編輯器測過範例輸入、再提交。