2022年1月25日 星期二

Lesson 3 Assignment(Suggested answer)

 

Lesson 3 Assignment

 

重要提示: 這課題要求學生掌握讓使用者自行輸入數值,用以進行不同的工作。

 

Assignment(1)

Write a C program for calculation of a rectangle. The output is as follow:





以上的34是由使用者自行輸入的,使用者可以輸入其他數值,也應該可以正確計算出長方形(rectangle)的面積。

 

建議答案:



說明:

1. 由於要讓使用者自行輸入長度及高度,因此需要使用變量(variable)來貯存。

2. 使用變量要先進行宣告(declaration),方法如下:

        int len; (宣告變數)

        len=1; (賦值予這變數)

        int 代表這個變數的格式,intinteger(整數)的意思,len 是這個變數的名稱。len=1; 代表把1這個數值給予len這個變數。

3. 由於之後會讓使用者輸入數值,所以可以省略不用賦值。

4. 要讓使用者輸入數值,然後貯存於指定變數的話,要使用以下指令:

        scanf("%d",&len);

        "%d" 代表這個變數的格式是整數。&len代表輸入後把數值賦予給len這個名稱的變數。

 ------------------------------------------------------------------------------------------------------

Assignment(2)

Write a C program for calculation of a triangle. The output is as follow:




這題目跟上一題很相似,祇是三角形的公式不同吧了。

建議答案如下:



說明: 以上的輸出答案是正確的。

 

但看看以下的輸出,程式沒變,但輸出卻不對。因為3x5/2,應是7.5,而不是7



說明: 出現以上現象的原因是 %d是整數格式,7.5不是整數,是小數(浮點數),系統會自動刪除小點後的數字。如要輸出完整的小數值,要更%d%f才成。%f 是浮點數(即具小數位的數字)(floating number)

 

但如更改成以下的話,仍是錯誤的。



說明: 因為要正確使用printf()輸出浮點數的話,後面的值必須一定要是浮點數才可以,但預設情況下,/ 不會輸出小數,即15/2的結果是7,而不是7.5

 

要正確輸出的話,要加一個浮點格式的變數才可以。如下:



說明:

1. 6行,設定多一個浮點(float)的變數,名稱是area

2. 11行,先計算面積,把結果貯存於area這個變數內。

3. 12行,使用printf()時,輸出area這個變數的值。由於area的值一定是浮點數,因此跟前面的 %f便一致了。

 

問題: 哪如何一開始把heightbase設成浮點變數,那是不是可以直接輸出公式,而不需要使用多一個area變數?

 --------------------------------------------------------------------------------------------------------

Assignment(3)

Write a C program for calculation of a circle. The output is as follow:



Hint: Since the value of pi is 3.14,it is not an integer, you must use floating number.

這題目原來較輸出三角形更簡單,如下:



說明:

1. 因為pi的值是3.14,本來便是浮點數,因此直接列出圓形面積公式便可以。

沒有留言:

張貼留言

如何於C程式內輸入字串?

之前我們學過如何於 C 程式內輸入數目字,但如要輸入字串,例如姓名,又要如何處理呢 ?   跟其他大部分電腦程言不一樣, C 並沒有一個字串的變數數據類型 (variable data type) , C 是使用字元 (character) 及變數陣列 (array)...