C語言I部落格作業04
- 2020 年 11 月 11 日
- 筆記
| 這個作業屬於哪個課程 | C語言程式設計ll |
|---|---|
| 這個作業要求在哪裡 | //edu.cnblogs.com/campus/zswxy/SE2020-3/homework/11491 |
| 這個作業的目標 | 學會自己定義函數,並使用函數解決問題 |
| 這個作業在哪個具體方面幫助我實現目標 | 使我可以使用我想要的函數去解決問題,給了我出發的方向 |
| 參考文獻 | 百度和同學的部落格 |
1.作業
1.1題目1
用函數編程計算兩個整數的最大值,在主函數中調用該函數計算並輸出從鍵盤任意輸入的兩整數的最大值。
輸入格式:
用戶從鍵盤任意輸入的兩個整數,以空格分隔。
輸出格式:
兩個整數中的最大值
1.1.1 數據處理
數據表達:我用到了變數有x,y,c。x和y通過scanf函數輸入,c只是一個一個工具。類型為整型。
數據處理:表達式有c=max(x,y) c=x c=y 。流程結構簡單分支結構。
**函數參數:主調函數為int main(),被調函數為int max(int x,int y),被調函數為整型。實參與形參為整型,形參實參名稱分別int x;int y為x,y。**
1.1.2 實驗程式碼截圖

1.1.3 造測試數據
| 輸入 | 輸出 |
|---|---|
| 3 4 | 4 |
| 5 6 | 6 |
| 10 9 | 9 |
| 0 1 | 1 |
1.1.4 PTA提交列表及說明

說明我在提交前出現的錯誤
1.編譯錯誤:在scanf函數中忘記使用&符號
1.2 題目2
本題要求編寫程式,根據公式C
n
m
=
m!(n−m)!
n!
算出從n個不同元素中取出m個元素(m≤n)的組合數。
建議定義和調用函數fact(n)計算n!,其中n的類型是int,函數類型是double。
輸入格式:
輸入在一行中給出兩個正整數m和n(m≤n),以空格分隔。
輸出格式:
按照格式「result = 組合數計算結果」輸出。題目保證結果在double類型範圍內。
1.2.1
數據處理:使用的變數有m,s,n,i,a,m,n直接通過scanf函數輸入。s,a,i賦值。m,n,i為整型,其他為浮點型。
數據表達:表達式有s=fact(n) /(fact(m) * fact(n-m) )。流程結構為循序結構。
**函數參數:主函數int main()。被調函數double fact(int n),類型為浮點型。實參和形參名稱,類型分別為fact(n) /(fact(m) * fact(n-m) 浮點型;int main() 整型。
1.2.2 實驗程式碼截圖

1.2.3 造測試數據
| 輸入 | 輸出 |
|---|---|
| 2 4 | result=6 |
| 3 8 | result=56 |
| 2 9 | result=36 |
1.2.4 PTA提交列表及說明

提交一次正確以下是在提交前出現的錯誤
1.編譯錯誤:在函數定義時double fact(int n)後面出現了分號。
2.格式錯誤:輸出答案的result=;=號兩邊沒有打空格符號,不符合輸出格式
3.答案錯誤:公式寫錯了,把n-m寫反了
2.程式碼互評(5分)
找2份同學程式碼,和自己程式碼比較,建議互評程式碼盡量找程式碼風格差異較大。
同學程式碼截圖


自己程式碼截圖

1,2,3方式羅列2份程式碼不同地方。
- 1.前面一位同學使用了if-else語句,另一位只使用了if,而我的也使用了if-else
- 2.有一位同學沒有使用自定義函數,而我們使用了自定義函數
- 3.每一份程式碼都有自己的思路和優點,都可以互相借鑒,相互學習,取長補短。
3.學習總結(15分)
3.1 學習進度條(5分)
| 周/日期 | 這周所花的時間 | 程式碼行 | 學到的知識點簡介 | 目前比較迷惑的問題 |
|---|---|---|---|---|
| 11/11.9—11.11 | 6h | 300 | 學會自定義函數 | 思路不夠清楚 |
3.2 累積程式碼行和部落格字數(5分)

3.3 學習內容總結和感悟(5分)
3.3.1 學習內容總結

3.3.2 學習體會
- 確實正如老師所說,現在接觸的東西,難度慢慢地在加深。這次我們初步接觸自定義函數,我感覺我還有很多不足的地方
- 在做題之前,我建議可以先把題目看懂,先理清思路和邏輯關係,不要盲目下手做題,這樣往往出現錯誤
- 我們在遇到不會的概念時,可以多通過大學慕課學習
請回顧自己的本周的學習過程,描述學習感受,也可以提出你不理解的地方、對教師教學建議等。如果你有新的想法或者新的方法,請及時記錄下來。


