指標
pointer
指標是什麼?
指標變數:儲存變數的記憶體位置(指標)的變數
指標是什麼?
指標變數是什麼?
指標變數宣告
指標變數宣告
&:取得變數的位址
指標變數的使用
*:取得指標變數指向的變數內容
(間接取值)
&:取得變數的位址
指標變數的應用
副程式的a, b交換了,但主程式中的沒有換
指標變數的應用
副程式的參數使用指標變數,得到主程式中變數a, b的位址
使用*(間接取值)來改變主程式中的a, b
傳值呼叫 VS 傳址呼叫
傳值呼叫
傳址呼叫
只把a, b的內容(值)傳(複製)給副程式
把a, b的位址傳給副程式
副程式只把複製來的內容交換
沒有交換原來主程式中的a, b
把複製來的a, b的內容放在副程式的a, b
把傳來的a, b的位址放在指標變數內
用*從指標變數內的位址
找到主程式中的a, b做交換
相當於做到回傳多個數值
陣列參數
不用加 &
成功在副程式給陣列指定內容(賦值)
不用加 *,也沒有陣列大小
陣列大小需另外再傳一個參數
c008: 我是送分題
得分=原始分數×4÷5+30 (小數部分無條件捨去)
超過100分者以100分記算
輸入說明:
輸入一個 0~100 的整數,代表學生的原始分數。
輸出說明:
請印出依照上述規則調整過後的分數。
輸入範例1:
輸入1:
38
輸出1:
60
輸入範例2:
輸入2:
88
輸出2:
100
c009: 月刊期數(二)
本期102年8月是第145期
輸入說明:
輸入一個正整數 N ( 1<=N<=145 ) 代表月刊的期數。
輸出說明:
請印出這本月刊發行的年和月,中間請空一格。
輸入範例1:
輸入1:
145
輸出1:
102 8
輸入範例2:
輸入2:
135
輸出2:
101 10
c010: 分數相加
輸入說明:
輸入四個正整數 a1、a2、b1、b2,代表兩個分數 a1/a2、b1/b2 的分子與分母。
輸出說明:
請你計算出它們的和,將之以帶分數的形式,如 c+d/e 的格式印出這個結果( c、d、e 都是整數),其中 c 為整數部分,而 d/e 必須化成最簡分數(不必考慮 d 為 0 的情況)。
輸入範例1:
輸入1:
1 2 1 3
輸出1:
0+5/6
輸入範例2:
輸入2:
2 3 5 6
輸出2:
1+1/2
c011: 叫我第二名
輸入說明:
先輸入一個正整數 N (3<=N<=10) ,代表該班有 N 位同學,接下來有 N 個 0~100 的整數,代表這 N 位同學的成績(未按照成績高低排序)。
輸出說明:
請你找出第二高分的成績,也就是小亮亮的分數,然後把它印出來(不用考慮分數重覆的問題)。
輸入範例1:
輸入1:
3 10 20 30
輸出1:
20
輸入範例2:
輸入2:
5 60 80 70 90 50
輸出2:
80