2008年12月26日 星期五

Pointer & Dynamic Data Structure》建立 Linked List (C語言)

寫一個程式來建立Linked List ,這個Linked List 中的node 紀錄姓名、年齡以及分數的資料。在程式中,讀入資料並將它們利用Linked List 串聯起來。寫一個函數create_link() 來進行資料讀入以及Linked List 建立的工作。寫一個函數print_link() 來將Linked List 中的資料全部印出來。另外寫一個函數add_score() 來將每一個人的分數都增加一個數字。最後寫一個main() 函數來呼叫create_link()去讀入資料並建立Linked List,呼叫print_link() 將整個Linked List 的資料印出來,讀入要增加的分數,之後呼叫add_score() 將每個人的分數增加,最後再呼叫一次print_link() 來看看結果。
以下是範例:
請輸入總共有幾筆資料:3
John
20,75
Mary
25,80
Joe
22,85
輸出:
Linked List 的內容:(Joe, 22, 85) => (Mary, 25, 80) => (John, 20, 75)
請輸入加給分:15
Linked List 的內容:(Joe, 22, 100) => (Mary, 25, 95) => (John, 20, 90)

2008年12月24日 星期三

結構》IP統計 (C語言)

在你的程式中,定義一個struct 型態,幫它取名address_t 。這個結構中有四個整數用以表示IP 位址的四個數字以及一個長度為10的字元的陣列用以存放電腦的別名。 你的程式會讀入一序列的電腦IP 位址以及其別名,最多可能有100組資料。並以 0.0.0.0 來表示輸入結束。例如:
140.131.45.1 mcu_mail
163.25.148.19 csie
163.25.149.23 teacher
0.0.0.0 none
你的程式在讀入資料後,要進行下列的作業:
a. 就IP 位址的第一個數字統計有幾部機器,範例輸出如下:
140 1部
163 2部
b. 列出電腦別名以字母'c'開頭的有幾部機器

2008年12月10日 星期三

排序》合併兩個已排序好的陣列 (C語言)

寫一個函式用來組合兩個已經由小到大排好的陣列成一個新的陣列,並且算出組新陣列elements加起來的總平均。

數字》倍數、質數、digit (C語言)

寫一個函數用來判斷一個數值,是否具有下列特性:
a.這個值是否是3,5,7的倍數?
b.這個值的各個 digit 的總合是多少?
c.這個值是不是一個質數?

輸入輸出範例:

輸入數字:126
126是否是3,5,7其中一個的倍數:是
126各個digit的總合是:9
126是否是一個質數:否
輸入數字:37
37是否是3,5,7其中一個的倍數:否
37各個digit的總合是:10
37是否是一個質數:是
輸入數字:-1

2008年12月9日 星期二

字串》最大相似尾巴 ( C語言 )

寫一個程式,它會讀入兩個字串,之後它會檢查並列出這兩個字串的尾巴最大相似部分。例如:字串"money"以及"honey"的最大相似尾巴是"oney",而"money"以及"cherry"的最大相似尾巴則是"y"。