奧林匹亞資訊班
5/10
講師:吳崇維(wayne)
printf (原本的cout)
printf
標頭檔 #include <stdio.h>
他相較於cout 速度快上非常多
這是因為他的限制比較多
輸入輸出都會比較麻煩一點
不過還是需要好好的學起來~
printf ex.1
標頭檔 #include <stdio.h>
單純的輸出 hello world!
注意幾點
(1) 這邊不用using namespace std; 不過想要寫也可以
(2) 主要語法 : printf("你要輸出的東西")
printf ex.2
標頭檔 #include <stdio.h>
輸出一個整數!
這邊引入一個新的觀點:參數
這邊要將 %d 視為一個完整的數字
在printf 裡面有%d , 程式就會知道接下來要輸出一個
整數變數 (int) , 並且將逗號後面的數字當作參數輸出!
printf ex.3
標頭檔 #include <stdio.h>
連續輸出三個整數!
注意到第一個 %d 對應到 x
第二個 %d 對應到 y
第三個 %d 對應到 z
printf ex.4
標頭檔 #include <stdio.h>
輸出一個字串~
這邊對應的參數是 %s ,傳入的是對應字串頭的指標
如果還不是很熟悉指標的話,先熟悉用法就可以。
printf ex.5
scanf (原本的cin)
scanf
標頭檔 #include <stdio.h>
他相較於cin 速度也快上非常多
這是因為他的限制比較多
輸入輸出都會比較麻煩一點
不過還是需要好好的學起來~
scanf ex.1
標頭檔 #include <stdio.h>
輸入一個整數 然後印出
重點!!!
scanf 需要知道變數的位址,所以需要一個取址符號 &
打打看程式碼互動一下!
scanf ex.2
標頭檔 #include <stdio.h>
輸入多個整數 然後印出
重點!!!
scanf 需要知道變數的位址,所以需要一個取址符號 &
此處scanf的三個%d中間可以不留空,也可以有空格
看個人習慣!
scanf ex.3
標頭檔 #include <stdio.h>
輸入一個字串 然後印出
重點!!!
scanf 需要知道變數的位址,所以需要一個取址符號 &
可是 name 本身就是一個指標了 (代表位址)
因此不需要再加上 &
綜合練習!
會先給你一個整數 N
代表會有多少個字串輸入
接著讀入這些字串
然後以相反順序輸出!
請使用 printf, scanf
以及二維字元陣列存字串
順便複習字串的處理!
Input
Output
題目練習
a. 基本語法
從電腦輸入(cin / scanf) 一個6位數
判斷他是不是 11 的倍數
如何判斷是否為11倍數 :
奇數位數字和與偶數位數字和相差為11的倍數。
範例輸入 1: 113311
範例輸出 1: YES
範例輸入 2: 100000
範例輸出 2: NO
b. 陣列處理
一場比賽雙方各有 N 個參賽者 (N會以cin讀入)
兩邊參賽者每位選手均有實力值,
並且1號選手會與另一隊1號選手對決。
贏方隊伍 +1 分,平手不算分
請計算最後是哪一隊得勝,或是整體平手!
範例輸入 : 5
1 2 3 4 5
5 4 4 2 1
範例輸出 : team 2 win!
c. 字串問題
你誤闖了某個山洞,看到石碑刻有一段文字:
Iglroavmempirnog
不解其意的你想了想,發現把奇數項字元先拿出來,再把偶數項拿出來排在一起,就有意義了!
Iglroavmempirnog => Iloveprogramming
這時你又看到了另一塊石碑,但上面有最多10000的字元!
寫一個程式來解讀這種字串吧!
d. 遞迴構造
https://zh.wikipedia.org/zh-tw/汉诺塔
上面為河內塔的遊戲玩法
給你一個河內塔的塔高 N ,請你求出最少需要多少
步驟才可以解完他呢?
作業!
沒有作業!
大家好好準備下禮拜的考試!
FeedBack!
一起努力快樂寫程式吧!
class 5/10 考前題目練習
By Wayne Wu
class 5/10 考前題目練習
- 59