Introduction to programming

Report
Introduction to C Programming
HOMEWORK 1
Homework 1-1
• 說明
• 練習printf,於螢幕印出以下圖形,0與1之間有一空行
• Sample input
• none
• Sample output
oo
o o
o o
o o
oo
o
oo
o
o
o
ooooo
Homework 1-2
• 說明
• 讓使用者輸入first name與last name,最後印出Hello (name)
• 先印出”Your first name: “,提示使用者輸入first name
• 再印出”Your last name: “,提示使用者輸入last name
(first, last name皆不會超過9個字元)
• 最後合併使用者輸入結果後輸出
• Sample input (灰色為程式印出之提示語,並非input)
Your first name: Linus
Your last name: Torvalds
• Sample output
Hello, Linus Torvalds
Homework 1-3
• 說明
• 撰寫一個簡單的成績表
• 使用者依序輸入名字(不超過9個字元)與國文,英文,數學的成績
• 印出格式整齊的成績表
• Sample input
Jim
70
80
90
• Sample output
Name
Chinese
Jim
70
English
80
Math
90
Homework 1-3 Tips
• 要讓輸出對齊,可以使用\t (tab)
• 例如
printf("a\tb\ta+b\n");
printf("1\t2\t3\n");
• 我們就可以在螢幕上看到
a
b
a+b
1
1
2
• 但有時某項目過長時會無法準確對齊
• 在此可以忽略此情況
Homework 1-4
• 說明
• 使用者輸入身高(cm) 體重(kg) ,輸出BMI指數
• 身體,體重皆為正整數,BMI指數為浮點數(float)
• BMI = 體重(kg) /(身高(m) x 身高(m))
• Sample input
173 60
• Sample output
20.047445
Homework 1-4 Tips
• 作除法時,例如int x = 10 / 3;
你可能會預期x的值為3.33333
但是x實際的值為3
• 那改成float x = 10 / 3 ?
• 但是10/3仍被當integer運算後,得到結果3
• 再被自動轉為float,存入x,值為3.000000
• 這種情況我們可以手動將型態轉變
• float x = (float) 10 / 3
• 由float型態的10進行浮點數的除法
• 得到的就是預期的值3.333333了
Homework 1-5
• 輸入兩浮點數(double) x, y,使用math.h,輸出各種數學函
式結果,你可以藉此認識各數學函式的用法與功能
• define PI 為 3.14159265
• degree x = x°
• Sample input
60 3.75
• Sample output
sin(degree x) = 0.866025
cos(degree x) = 0.500000
tan(degree x) = 1.732051
atan(degree x) = 0.808449
sqrt(y) = 1.936492
x^y = 4656581.291042
log(y) = 1.321756
floor(y) = 3.000000
ceil(y) = 4.000000
Homework 1-5 Tips
• double的輸入輸出建議使用%lf
若使用%f可能有精準度的問題發生
• 使用#define來定義常數PI
• math.h的內含哪些數學函式可以使用?
• Google math.h
• http://en.cppreference.com/w/c/numeric/math
• http://www.cs.ccu.edu.tw/~hcm92u/linux_c/function/06.html#linuxc6
9
Deadline
• 10/04

similar documents