Skip to main content
Advanced Search
Search Terms
Content Type

Exact Matches
Tag Searches
Date Options
Updated after
Updated before
Created after
Created before

Search Results

53 total results found

3.3 二分搜

C++程式設計進階 3-排序和搜尋

4.1 STL、iterator、pair、vector介紹

C++程式設計進階 4-STL

4.2 stack、queue介紹

C++程式設計進階 4-STL

4.3 set、map介紹

C++程式設計進階 4-STL

5.1 一維陣列

C++程式設計入門 05-陣列

陣列(Array)的結構 陣列這種資料結構是用來儲存許多相同型別的資料用的。如果我們把變數想像成是一個可以放東西的箱子,那麼陣列就是一堆箱子的集合,而且每個箱子都有一個連續編號的索引值(index)。 例如:我們要儲存 10 個學生的成績(都是整數),我們可以使用這樣一個內含 10 個元素(element)/項目(item)的陣列。 宣告陣列 在程式中我們可以這樣宣告這個陣列 score。 int score[10]; 其語法為 型別 陣列名稱[元素數量]; 其中陣列名稱的命名規則與一般變數的命名規則相...

5.2 字串

C++程式設計入門 05-陣列

字串是字元的陣列 字串可以被視為一個字元型別的一維陣列,例如:"Hello world!"在記憶體中是這樣一個一個字元儲存的。 #include <iostream> using namespace std; int main() { char greeting[13] = "Hello world!"; cout << greeting; return 0; } 在上圖中最後一個字元 '\0'是什麼呢?這個是所謂的 null字元。 因為每個字串的長度是不一定的,cou...

5.3 多維陣列

C++程式設計入門 05-陣列

二維陣列 把索引值擴展為 2 維,我們就可以得到二維陣列。 一個大小為 m x n 的二維陣列,可以這樣宣告。 // 宣告一個 4 x 6 的 int 二維陣列 int A[4][6]; 和一維陣列一樣,可以在宣告時給定初值。 int A[4][6] = { {1, 2, 3, 4, 5, 6}, {5, 12, 7, 11, 9, 8}, {10, 21, 13, 22, 23, 16}, {4, 78, 13, 45, 51, 11} }; 搭配雙層迴圈遍歷其值 我們可以使用雙層迴圈,把前...

6-1 函數

C++程式設計入門 06-函數

隨著寫程式經驗愈來愈多,你會發現有些程式碼會不斷重複出現,就像例行性工作一樣,例如:求平方根、將資料排序、驗證帳號密碼......等等。一次又一次的輸入這些程式碼會讓人很不耐煩。對於這些經常出現的程式碼片段,我們可以使用函數來把它們包裝起來。C/C++裡面的函數就像數學裡面的函數,例如: $f(x)=2x^2+3x+4$ 它有一個輸入:x,有一個輸出:f(x)。你給它一個輸入 3,它在運算後會給你一個輸出31;你給它另一個輸入 2,它會給你另一個相應的輸出18。不管你給的輸入是什麼,它都會很忠實的去完成該做的事 $...

6-2 重覆使用函數

C++程式設計入門 06-函數

相同名稱的函數 原則上函數的名稱不能重覆,但是只要其參數列不同,就可以使用相同的名稱。 以下面的程式為例,我們可以觀察到叫用函數時,編譯器會檢查函數名稱和參數列數量和型別。 #include <iostream> using namespace std; // 回傳 2 整數中的最小值 int MIN(int a, int b) { cout << "回傳 2 整數中的最小值" << endl; if(a<=b) return a; else return...

6-3 傳值呼叫 與 傳參考呼叫

C++程式設計入門 06-函數

參數與引數 在提到函數與呼叫使用函數時,我們會用到 參數(parameter) 和 引數(argument) 這兩個名詞。 我們可以簡單的用這張圖來區分他們。 參數(parameter) 是在定義函數時,用來承接傳入資料的變數。 引數(argument) 是在呼叫使用函數時,傳入的資料。 然而在大多數的情況下,大家並不會區分的那麼清楚,很多時候我們都會用 參數 來意指兩者。在後續的內容裡除非特別需要指出其不同,否則我們會使用 參數 這個詞。 傳值呼叫(call by value) 在叫用函數時,我們通常都...

6-4 將陣列傳入函數

C++程式設計入門 06-函數

傳址呼叫(call by address) 除了「傳值呼叫」、「傳參考呼叫」外,還有一種參數傳遞方式叫「傳址呼叫」。 為什麼叫「傳址」呢?因為這種方式是直接把變數在記憶體中的 「位址(address)」 傳進去給函數,在函數裡我們直接到記憶體中的相應位置去操作這個變數的值。所以傳址呼叫和傳參考呼叫一樣可以動到外面變數的值。 關於傳址呼叫,因為會接涉到記憶體位置和指標(pointer),比較複雜,我們會稍後再來看這個主題。 不過由於大家可能會有需要把一個陣列傳入函數裡,所以我們先來看要如何做到。 一個陣列裡面的元素可...

6-5 全域變數與靜態變數

C++程式設計入門 06-函數

全域變數(Global variable) 一般來說,我們使用函數時會將操作到的變數限制在函數裡,也就是以區域變數的方式使用。如有需要操作到函數外面的變數,我們會用傳參考或傳址的方式來處理。 我們以一個抽號碼牌的程式來示範。 練習:抽號碼牌(1) #include <iostream> using namespace std; int getTicket(int &num) // 以傳參考方式遞增外面的 num 變數值 { num++; return num; } int main() { ...

*2.4 C 語言的 printf( ) 格式化輸出函數

C++程式設計入門 2-變數與輸入、輸出

為什麼需要「格式化」輸出? 想像一下,如果你的程式計算出圓周率是 3.1415926,但你只想在螢幕上顯示 3.14;或者你希望輸出的成績單欄位能夠像表格一樣文字靠左對齊,數值靠右對齊。 這些都無法單純地將變數丟出來就辦到,我們需要「告訴」printf 應該用什麼「格式」來呈現資料,這就是格式化輸出的精髓。 標頭檔 要使用 printf,請務必在程式開頭引用標頭檔: #include <cstdio> cstdio 是指 C語言的標準輸入輸出(c standard input output)。 printf 語法...

*2.5 C 語言的 scanf( ) 格式化輸入函數

C++程式設計入門 2-變數與輸入、輸出

我們已經學會如何用 printf 讓程式輸出精美的訊息。但一個真正有用的程式,不僅要會「說」,更要會「聽」。它需要接收使用者的指令、數據,才能進行下一步的處理。 scanf (scan formatted) 就是這座溝通的橋樑。它會暫停程式的執行,靜靜地等待使用者從鍵盤輸入資料,然後依照我們指定的「格式」去解析這些輸入,並將它們存放到對應的變數中。 同樣地,要使用 scanf,請務必在程式開頭引用標頭檔: #include <cstdio> 2.5.1- scanf 的核心語法與「&」的秘密 scanf 的語法看...

3.5 三元運算子 ? :

C++程式設計入門 03-選擇結構

3.5.1 三元運算子? : 在 C++ 中,三元運算子(Ternary Operator)是唯一一個需要三個運算元的運算子。它的符號是 ? 和 :。 這個運算子主要用來取代簡單的 if-else 判斷式,讓程式碼在一行內就能完成條件判斷與賦值,非常方便。 語法 三元運算子的基本語法結構如下: 條件式 ? 運算式1 : 運算式2; 條件式 (Condition): 這是一個會回傳 true (真) 或 false (假) 的布林表達式。 ? : 這是三元運算子的核心符號。 運算式1 (Expression1...