奧林匹亞資訊班

5/3

講師:吳崇維(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

遞迴

recursion

遞迴 recursion

作為程式語言最難理解的運作模式,我們會用非常多時間來好好理解遞迴的意義

 

我對於遞迴的理解就是

 

理解函式(function)的作用

並將其工作(功能)不斷分配下去

 

理解函式:

 

void func(int x);

----------

此函式接收一個整數參數

將整數參數的值印出來

若此值為0 => 回傳 (終止條件)

否則處理func(x-1);

回傳

遞迴的重重重點

 

一定要有終止條件!!!

一定要有終止條件!!!

一定要有終止條件!!!

 

如果沒有終止條件,就會造成遞迴無限的執行下去

Sum of Squares with Recursion

給你一個整數 N , 請你算出

1*1 + 2*2 + 3*3 + ... + N*N

 

你只能使用遞迴,for or while

不被允許的。

台大資工大一練習題

背包問題(hard)

 

現在有一堆物品,每一項物品都有其重量與價值。

 

可是背包有重量限制,請問背包最多能裝下多少價值的物品呢?

 

 

背包問題

例子 : 5 件物品,背包限重 6 

其重量以及價值分別為

重量 ; 價值

3         1

1         3

2         3

3         5

3         5

 

則此題解為裝 第2,3,4個物品

你能用遞迴解決這題嗎? 

作業!

背包問題

  • 想一下如何解決
  • 中文或英文表示你的方法 (不一定要寫code)
  • 把你的想法記錄下來給我看:) 
  • 對錯不重要,重要的是思考過程

FeedBack!

一起努力快樂寫程式吧!

Made with Slides.com