奧林匹亞資訊班

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!

一起努力快樂寫程式吧!

Made with Slides.com