這個作業屬於哪個課程 | C語言程序設計II |
---|---|
這個作業要求在哪里 | https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/9831 |
我在這個課程的目標是 | 學會用 C語言編寫程序-函數 2.5 生成乘方表與階乘表,理解並弄懂自定義函數 |
這個作業在哪個地方具體方面幫助我實現目標 | 學會了用 C語言編寫程序計算階乘以及鑲嵌類代碼如何提交 |
參考文獻 | C語言課本,http://wenwen.sogou.com/z/q655602840.htm, https://zhidao.baidu.com/question/1829664840852122060 |
1.PTA實驗作業
1.1題目名
本題要求實現一個函數,判斷任一整數是否為水仙花數(必須是三位數,且數的每一位上數字的立方和與數本身相等)。例如153=1^3+5^3+3^3=1+125+27=153,而1或155則不是水仙花數。如果是水仙花數,則函數返回1,否則返回0.
函數接口定義:
int func(const int N);
其中N是用戶傳入的參數。N的值不超過int類型的范圍。如果參數N是水仙花數,則返回1,否則返回0。
1.1.1數據處理
數據表達:運用到了參數N,整形變量m,n
數據處理:運用到了 func 函數,while循環語句,if-else語句,表達式有 m += (n % 10) * (n % 10) * (n%10); n/=10;
1.1.2實驗截圖代碼
1.1.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
120 | 0 | 不是水仙花數 |
153 | 1 | 是水仙花數 |
163 | 0 | 不是水仙花數 |
200 | 0 | 不是水仙花數 |
1.1.4 PTA提交列表及說明
說明:Q1.編譯錯誤
A1.開始沒弄明白是鑲嵌代碼,直接把所有的代碼提交上去了
Q2.編譯錯誤
A2.將printf改成了return
Q3.部分正確
A3.while語句只能部分操作正確,修改了代碼
1.2題目名
寫函數fun,其功能是:判斷一個整數的各位數字平方之和能否被5整除,可以被5整除則返回1,否則返回0。
函數接口定義:
int fun(int n );
其中 n 是用戶傳入的參數。 函數判斷n的各位數字平方之和能否被5整除,能被5整除則返回1,否則返回0。
1.2.1數據處理
數據表達:運用到了參數n,整形變量m
數據處理:運用到了fun函數,while循環語句,if-else語句,表達式有m += (n % 10) * (n % 10);n/=10;
1.2.2實驗截圖代碼
1.2.3造測試數據
輸入數據 | 輸出數據 | 說明 |
---|---|---|
12 | The result is 1 | 能被5整除 |
123 | The result is 1 | 能被五整除 |
1234 | The result is 1 | 能被5整除 |
1233 | The result is 0 | 不能被5整除 |
1.2.4PTA提交列表及說明
說明:Q1.編譯錯誤
A1.不小心在代碼中寫了別的英文符號,檢查了代碼
Q2.編譯錯誤
A2.在編譯器上能輸出正確答案,但在PTA上面就是編譯錯誤,我提交了很多次,最后才知道是要鑲嵌代碼,最終答案正確
2代碼互評
1.同學代碼截圖
2.自己代碼截圖
說明:1.她和我使用的變量不一樣,她用了:sum,x;我用的:m,n
3.同學代碼截圖
4.自己代碼截圖
說明:1.她和我使用的變量不一樣,她用了:z,s,我用了:m.n
2.在定義變量時,她分步對z,s進行了定義,而我只定義了m,她對z定義的是多余的,在輸出返回時,她也多了步驟,可以直接return 0;她分了兩步,而我是一步到位
3.學習總結
3.1學習進度條
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識簡介 | 目前比較迷惑的問題 |
---|---|---|---|---|
4/2019.9.21 | 7個小時 | 50 | 編程“hello word” | 初次接觸對代碼很迷惘,不知道表示的是什么意思 |
5/2019.10.2 | 8個小時 | 100 | 安裝gcc編譯器,將代碼建在自己的文件里 | 如何安裝的程序不明白 |
7/2019.10.11 | 10個小時 | 200 | 三種表達式,printf流程和scanf流程,if-else語句 | scanf流程還是不太明白 |
8/2019.10.17 | 20個小時 | 350 | 使用for循環語句數的循環程序設計 | for循環語句的結構還是有點困惑 |
9/2019.10.25 | 25個小時 | 550 | 使用while語句循環,自定義函數,參數 | 自定義函數還是·不太明白 |
3.2 累積代碼行和博客字
3.3 學習內容總結和感悟
3.3.1 學習內容總結
請用思維導圖的形式將到目前為止所學的內容進行整理
3.3.2學習體會
1.這次編寫代碼,學習到了很多新的知識,感覺到了編程的難度在不斷增加之中;這次作業中,我學習到了編寫代碼,不僅僅要編寫代碼正確,還要讀懂題意,要加強自己的理解能力,這次作業中有一個新的題型,鑲嵌代碼,在最開始寫代碼時,我沒有注意到這個問題,導致我在一個問題上困擾了很久,明明在dev++上能編譯運行正確,為什么在PTA上就是編譯錯誤勒,后來我想了很長時間都沒想明白,我詢問了吳佳柳同學,他說我的提交有誤,在自己的多次查看,對比第一題的提交,我終於寫對了第二題。通過這次做題,我明白了我們不僅僅是編寫代碼,還要理解,讀懂。
2.隨着學習難度的增加,知識點也越來越多,挑戰越來越大,痛苦之中更多的是樂趣,來自C語言的樂趣一般人無法體會。
3.這次作業僅僅靠學習課本是不行的,比如這次作業中出現的while循環語句,C語言中的素數是什么,fun函數的運用,這些都是通過百度百科才明白,然后做題,課堂后的延展是十分重要的,自學能力要不斷的增強,自己要加倍努力。